- 博客(18)
- 收藏
- 关注
原创 常用排序算法
对于以上七种排序,其中插入,冒泡,归并,基数为稳定排序,其他为不稳定排序。归并排序为外部排序, 其他为内部排序。稳定性指排序后相同大小的元素的相对位置不变。内外部性指待排序的数据是否能直接对到内存中进行排序,对于大数据而言,归并排序是可以对其进行处理的。
2024-09-01 11:22:23 420
原创 结构体,联合体,枚举类型
首先,结构体变量的定义,需要首先搭建结构体的框架,然后定义变量,其次,对其初始化类似于数组的初始化,即初始化每一个字段的内容。上述代码中,对于结构体的访问,可以通过变量名,即hug.name一类的方式直接访问,也可以利用指针进行间接访问。还要注意的是,除了像hug这样定义结构体变量之外,还可以通过在结构体后直接加变量名来定义,如hug2。在第一种定义方式中,hug的类型名struct person太长,我们可以用typedef关键字来对其重命名。
2024-08-07 23:30:00 1736
原创 内存管理方法
这里注意memset的值的替换是对于字节而言的,比如,当指定值为0时,对于一个整型的四个字节他每位都为0,则每个整型都被赋值为0,当指定值为-1时,由二进制补码的性质可知,对于一个整型的四个字节他每一位都是1,转换为十进制就是-1,但是,当指定值为2时,其每个字节存2,得出的整型值一定不为2,所以一般的我们用memset就赋值为0或-1。内存设置,将一段内存中的每个字节替换为给定值,其参数有三项,第一项为为指针,存放这段内存空间的首地址,第二项为想要替换的指定值,第三项为替换的内存的字节数。
2024-08-07 15:00:00 231
原创 递归函数设计
递归函数的设计主要是三步:1.给定该函数一个明确的语义2.实现边界条件时的程序逻辑3.假设递归函数调用返回值正确,实现本层函数逻辑其中,最重要的是第一步,下面看几个例子来感受递归函数的设计。
2024-08-06 23:30:00 301
原创 补充:约数个数定理
对于任一一个正整数N,根据质因数分解定理其都可拆分为若干素数相乘的形式,则该正整数N 的约数个数为各素因子幂次加一后再相乘。(证明:排列组合问题)如:72 = 2^3 + 3^2, 则72的约数个数为(3 + 1)*(2 +1)= 12。
2024-07-24 08:54:49 283
原创 补充:素勾股数
有三个数a,b,c,三者互质(最大公因数为1)满足a^2 + b^2 = c^2,称a,b,c为一组素勾股数。性质一:素勾股数他们的整数倍也是勾股数,即(na,nb,nc)也是勾股数。性质二:a,b必为一奇一偶。性质三:任何素勾股数可表示为如下形式:,其中n<m,gcd(n,m)=1。
2024-07-21 16:04:23 214
原创 二分查找算法基础
二分查找,又叫“折中查找”,其通过问题的性质,每次将问题规模缩小一半,对应的时间复杂度为O(logN)。二分查找不仅能用作数组元素的查找,还可用于单调函数的求解。对于二分查找算法,它包含head(头指针), tail(尾指针), mid三个变量,这里的头尾指针其实并不是指针,一般为整型,表示所求问题的范围的边界,通过判断查找的数据是否在这两个范围内(指的是从head到mid和从mid到head两个范围),来缩小问题规模。
2024-07-21 11:06:42 482
原创 素数筛和线性筛
其思路就是遍历给定范围内的全部数字 i ,素数就按顺序存于数组prime中,遍历当前数组prime中的素数prime[j],标记i*prime[j]为合数,当i可以被prime[j]整除时就停止标记合数。由于在素数筛中,存在合数被重复标记,导致时间复杂度较大,而线性筛算法可以使每个合数只被标记一次。
2024-07-16 17:13:40 224
原创 指针语法基础
首先定义一个指针变量,即在变量名前加*,其前面的类型,指的是该指针变量所存储的地址的类型。当对一个指针变量前加取值运算符 * 时,其所表示的是该指针变量代表的地址下的值。指针变量在32位系统上占4个字节,在64位系统上占8个字节。
2024-07-14 14:15:33 323
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人