Types in C Language
In C, every piece of data has a type that the compiler must understand to properly operate on it. The “type” refers to the shared characteristics of similar data, allowing you to know its properties and operations once its type is known. There are three basic data types: char (character), int (integer), and float (floating-point). More complex types are built from these. Character TypeThe character type represents a single character and is declared with the char keyword. 1char c =...
Flow Control in C Language
In C programming, execution is sequential, meaning statements are executed one after the other. To control the flow of execution, developers use flow control structures, primarily conditional and loop statements. if StatementThe if statement is used for conditional execution; it executes a specified statement if the condition is true. Syntax: 1if (expression) statement Here, expression must be true (non-zero) for statement to execute. The condition inside the parentheses must be enclosed in...
Operators in C Language
C language includes a wide variety of operators, more than 50 in total, which can be categorized into several types. Arithmetic OperatorsArithmetic operators are used for mathematical operations. The main ones are as follows: +: Unary plus (positive sign) -: Unary minus (negative sign) +: Addition (binary operator) -: Subtraction (binary operator) *: Multiplication /: Division %: Modulus (remainder of division) Unary + and -:The + and - can act as unary operators, requiring...
Understanding Variables in C Programming
A variable can be understood as the name of a memory location. By using the variable name, you can reference this memory and access the stored value. The value might change, which is why it’s called a variable. If the value remains constant, it’s referred to as a constant. Variable NamesIn C, variable names are considered identifiers, and there are strict rules for naming them: They can only contain letters (both uppercase and lowercase), digits, and underscores (_). They cannot begin with...
Basic C Language Syntax
StatementsC code is composed of statements. A statement is a command that the program executes. In C, each statement must end with a semicolon, unless specified otherwise. 1int x = 1; The above is a variable declaration statement, where the integer variable x is declared and assigned a value of 1. Multiple statements can be written on a single line: 1int x; x = 1; Here, two statements are written on one line. Line breaks between statements aren’t required but are often used for...
Introduction to the C Language
HistoryThe C programming language was originally invented as a tool for developing the Unix operating system. In 1969, Ken Thompson and Dennis Ritchie at Bell Labs in the United States developed the Unix operating system. Unix was initially written in assembly language, making it difficult to port to other computers. To address this, they decided to rewrite it in a high-level language. However, existing high-level languages at the time did not meet their needs, so Thompson developed the B...
Analyzing Time Complexity of Algorithms Using Big O Notation
In the previous article “Big O Notation for Time and Space Complexity,” we introduced the origin and notation of Big O time complexity. Now let’s explore how to analyze the time complexity of a piece of code. Understanding how to analyze the time complexity of a piece of code using Big O notation is a crucial skill for any software developer or computer scientist. Big O notation provides a way to describe the performance of an algorithm in terms of the amount of time it takes to execute or...
Big O Notation for Time and Space Complexity
We all know that data structures and algorithms address the concepts of speed and efficiency—how to make code run faster and use storage space more efficiently. Therefore, the execution efficiency of algorithms is a crucial consideration. How do we measure the efficiency of the algorithmic code we write? This brings us to today’s topic: analyzing time and space complexity. Why is complexity analysis needed?You might be wondering why I need to analyze time and space complexity when I can...
Why You Should Learn Data Structures and Algorithms
Do you think that data structures and algorithms, similar to operating systems and computer networks, are disconnected from practical application? Some argue these concepts are primarily useful for interviews and not essential in day-to-day coding.However, I disagree. In today’s digital era, understanding data structures and algorithms is crucial, regardless of whether you’re a seasoned developer or new to coding. These foundational concepts not only enhance your problem-solving abilities...
用户画像:从数据到人群特征
当下,随着互联网技术的发展和普及,用户数据逐渐成为重要的商业资源,企业和组织越来越重视对用户的了解和分析。用户画像作为一种有效的工具,可以帮助企业更好地了解目标用户的特点和需求,进而进行精准的市场定位、产品设计和营销推广等活动。 一、什么是用户画像用户画像(User Profile),指通过数据分析、挖掘和整合,对特定用户群体进行描述和分类的过程。它包括用户的个人信息、兴趣爱好、使用行为、社交网络等多个方面的数据,可以帮助企业或组织更好地了解用户需求和习惯,提供个性化的产品和服务。 二、用户画像的应用场景 市场定位:通过用户画像,企业可以了解目标用户的年龄、性别、地域、收入等基本信息,从而确定产品的定位和目标市场。 产品设计:用户画像可以帮助企业了解用户的需求和使用习惯,提供更符合用户需求的产品和服务。 营销推广:通过用户画像,企业可以根据用户的兴趣爱好、购买行为、社交网络等信息,进行精准的广告投放和营销推广,提高广告的点击率和转化率。 客户服务:用户画像可以帮助企业了解用户的消费习惯和偏好,提供更优质的客户服务和售后支持。...
Elasticsearch文档ID的长度限制
在 Elasticsearch 中,每个文档都有唯一的文档 ID,用于标识该文档在索引中的位置。文档ID是一个重要的概念,了解它的长度限制非常重要。 Elasticsearch 文档 ID 的长度限制是 512 Bytes。这意味着文档 ID 不能超过 512 字节的大小。如果你尝试创建一个超过 512 字节的文档 ID,Elasticsearch 将会返回一个错误。这个限制是为了保证索引的性能和稳定性。 以下通过示例来说明 Elasticsearch 文档 ID 的长度限制。 Elasticsearch 版本:7.1.0API 调用均在 Kibana 开发工具上操作 首先,创建一个名为 test_idx 索引:12345678910111213PUT test_idx { "settings": { "number_of_shards": 1 }, "mappings": { "properties": { ...
Kafka: a Distributed Messaging System for Log Processing
ABSTRACTLog processing has become a critical component of the data pipeline for consumer internet companies. We introduce Kafka, a distributed messaging system that we developed for collecting and delivering high volumes of log data with low latency. Our system incorporates ideas from existing log aggregators and messaging systems, and is suitable for both offline and online message consumption. We made quite a few unconventional yet practical design choices in Kafka to make our system...
什么是Consumer Internet?
消费互联网(Consumer Internet) 指的是面向消费者的互联网产品、服务和商业模式。它将互联网技术和平台应用于满足个人消费需求的领域,为消费者提供各种产品和服务。基于互联网和移动互联网技术,通过电子商务平台、在线支付系统、社交媒体平台等为消费者提供便捷、丰富的消费体验。它与过去面向企业用户的互联网有着明显的不同。 一、消费互联网的主要特点 以消费者为中心。消费互联网满足消费者的各种需求,如娱乐、社交、购物等。 强调用户体验。消费互联网产品追求简单、便捷的用户体验,降低消费者的使用门槛。 商业模式多样。消费互联网的商业模式包括广告、交易佣金、增值服务、订阅等。 高度依赖移动互联网。消费互联网大量应用手机等移动终端,可以随时随地接入服务。 二、消费互联网的主要领域 娱乐 - 视频、音乐、游戏等娱乐内容。例如抖音、网易云音乐。 社交 - 社交网络、即时通讯。例如微信、微博。 电子商务 - 电商购物、外卖订餐等电子商务。例如淘宝、美团。 资讯 - 获取信息和知识。例如今日头条、知乎。 旅游 - 酒店预订、旅游攻略等旅游服务。例如携程、途家。 在线支付 -...
MySQL整数类型INT(5)和INT(11)的区别
MySQL 支持 SQL 标准整数类型 INTEGER(或 INT)和 SMALLINT。作为标准的扩展,MySQL 还支持 TINYINT、MEDIUMINT 和 BIGINT 整数类型。下表显示了每种整数类型所需的存储空间和范围。 类型 存储 (Bytes) 最小值(有符号) 最小值(无符号) 最大值(有符号) 最大值(无符号) TINYINT 1 -128 0 127 255 SMALLINT 2 -32768 0 32767 65535 MEDIUMINT 3 -8388608 0 8388607 16777215 INT 4 -2147483648 0 2147483647 4294967295 BIGINT 8 -263 0 263-1 264-1 这些整数类型后面的数字表示最大显示宽度,并不影响实际存储范围。例如,INT(5) 和 INT(11) 的存储范围和大小完全一样,都是 -2147483648 ~ 2147483647,占 4 个字节。(5) 和 (11) 只是表示显示宽度,即 INT(5) 显示结果的最大宽度为 5...
解决MySQL 8中“Public Key Retrieval is not allowed”问题
问题从 MySQL 8 开始,身份验证插件更改为“caching_sha2_password”。因此,使用 JDBC 或其他客户端工具连接 MySQL 时,可能会遇到“Public Key Retrieval is not allowed”的问题。 1Public Key Retrieval is not allowed 解决方案一在连接 MySQL 时,设置以下参数,允许客户端自动向服务器请求公钥。1allowPublicKeyRetrieval=true如:1jdbc:mysql://localhost:3306/mysql_database?useSSL=false&allowPublicKeyRetrieval=true 解决方案二我们可以将身份验证插件更改回“mysql_native_password”来解决该问题。 在终端中执行以下命令以使用 root 用户登录 MySQL: 1$ mysql -u root -p 进入mysql数据库: 1mysql> use mysql; 查看当前用户表中的 host 和用户信息:...
如何找回DBeaver连接中保存的数据库密码?
DBeaver 是一款功能强大的数据库管理工具,支持多种数据库平台。它提供了一个方便的方式来管理和操作数据库,包括连接、查询、导入导出等功能,但如果我们忘记了保存在其中的数据库密码,我们需要一种方法来恢复它。本文将介绍一种方法来找回 DBeaver 保存的数据库密码。 步骤以下是找回 DBeaver 连接中保存的数据库密码的步骤: 找到 DBeaver 的 workspace 位置:在 DBeaver 的界面中,点击“窗口”菜单,选择“首选项”选项。弹出的对话框中,点击“Workspace”按钮(中文名称:工作空间),即可找到 workspace 的位置。 在 workspace 位置下,可以找到 General 文件夹。 找到密码文件的位置:在 General 文件夹中,我们需要找到名为credentials-config.json的文件,该文件保存了 DBeaver 中连接的密码信息。 解码密码文件:为了解码密码文件,我们需要使用 OpenSSL 工具。在本例中,使用了 Windows 10 上的 Linux 子系统 Ubuntu 18,并在终端中执行了以下命令:...
分位数的概念及其应用
分位数是统计学中常用的一个概念,用于描述数据集的分布情况。它将数据集按大小排序并将其分为几个等份,从而能够更加深入地了解数据集的中心趋势和离散程度。在统计学和数据分析领域,分位数是一个常用的工具。 定义把顺序排列的一组数据分割为若干相等部分的分割点的数值即为相应的分位数(quantile)。 常见的分位数有: 二分位数:分位数中最简单的一种,它将数据等分成两分。 四分位数(Quartile):将数据按照大小顺序排序后,把数据分割成四等分的三个分割点上的数值。对原始数据,四分位数的位置一般为$\frac{n+1}{4}$,$\frac{2(n+1)}{4}$,$\frac{3(n+1)}{4}$。如果四分位数的位置不是整数,则四分位数等于前后两个数的加权平均。 十分位数(Deciles):将数据按照大小顺序排序后,把数据分割成十等分的九个分割点上的数值。 百分位数(Percentile):将数据按照大小顺序排序后,把数据分割成一百等分的九十九个分割点上的数值。常见的有 1% 分位数、5% 分位数、25% 分位数、50% 分位数(中位数)、75% 分位数、95% 分位数、99%...
了解分位数:定义与应用
在统计学和数据分析中,摘要统计(如中位数、第一四分位数和第三四分位数等)是数据集位置的度量。这是因为这些数字指示了数据分布中特定比例的位置。例如,中位数是研究数据的中间位置。一半的数据值小于中位数。类似地,25% 的数据值小于第一四分位数,75% 的数据值小于第三四分位数。 这一概念可以进一步概括。一种方式是考虑百分位数(percentiles)。第 90 个百分位数表示有 90% 的数据值小于这个数。更一般地说,第 p 个百分位数是一个数 n,使得有 p% 的数据值小于 n。换句话说,它表示了分布中的一个点,使得给定百分比的数据值小于该点。 连续随机变量的分位数虽然中位数、第一四分位数和第三四分位数的序数统计通常是在离散数据集的情况下介绍的,但实际上它们也适用于连续随机变量。对于连续分布,我们使用积分来定义分位数。第 p 个百分位数是一个数 n,使得: $\int^{n}_{-\infty}{f(x)dx}=p/100$ 其中,$f(x)$是连续分布的概率密度函数,$[-\infty, n]$表示从某个起始点到 n 的积分范围,p...
如何查看MySQL版本
MySQL 是一种常用的关系型数据库管理系统,它被广泛应用于各种类型的应用程序中。在进行数据库维护和开发过程中,了解当前所使用的 MySQL 版本是非常重要的。本文将介绍几种简单的查看 MySQL 版本方法。 方法一:通过 SQL 查询语句 打开 MySQL 客户端工具,例如 MySQL 命令行或者图形化界面工具(如 MySQL Workbench)。 连接到要查询版本的数据库实例。 在 SQL 查询编辑器中输入以下查询语句:1SELECT VERSION(); 或者1SELECT @@VERSION; 执行查询语句,可在结果中获得 MySQL 的版本信息。1234567+------------+| VERSION() |+------------+| 5.7.31-log |+------------+1 row in set (0.06 sec) 方法二:通过命令行 打开命令行终端。 输入以下命令:1mysql --version 按下回车键执行该命令,在输出结果中看到 MySQL 的版本信息。12$ mysql --versionmysql Ver...
分位数:定义及简易查找方法
什么是分位数?“分位数(quantile)”一词源于”quantity”。简单地说,分位数就是将样本划分为大小相等、相邻的子组(这就是为什么有时称为 “fractile”)。它也可以指将概率分布划分为具有相等概率的区域。 中位数是一种分位数;在概率分布中,中位数被放置在这样一个位置,使得恰好有一半的数据小于中位数,另一半的数据大于中位数。中位数将一个分布切割成两个相等的区域,因此有时也被称为 2-分位数。 四分位数也是一种分位数;它将分布划分为四个相等的部分。百分位数是将分布划分为 100 个相等部分的分位数,而十分位数是将分布划分为 10 个相等部分的分位数。 有些作者将中位数称为 0.5 分位数,这意味着该比例的值(一半)将位于中位数之下,而另一半则在中位数之上。如果你想在一个数据集中找到特定的分位数(如中位数),使用以下公式来估计第 i 个观测值: 第 i 个观测值 = q * (n + 1) 其中,q 代表你要寻找的第 i 个值以下的比例,n...