随笔分类 - C语言算法-自学和二级
1
自学时期的源码和算法
摘要:看个动画先,急什么啊 笑死。。。。希尔这孩子打小就聪明 我笑了。 这玩意就是直接插入排序的优化版本,希尔这孩子 太调皮了8 换句话讲: 一开始我们选一个d,这个d是 “长度 / 2 ”而来的【也可以不是/2 但/2用的多】 然后以d为间距,选取距离 d 距的元素,然后进行划分为一组一组,进行直接插入
阅读全文
摘要:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
阅读全文
摘要:无聊写写 溢出 每一种数据类型都有数值范围,如果存放的数值超出了这个范围(小于最小值或大于最大值),需要更多的二进制位存储,就会发生溢出。大于最大值,叫做向上溢出(overflow);小于最小值,叫做向下溢出(underflow)。 unsigned char x = 255; x = x + 1;
阅读全文
摘要:C语言-字符串循环左移后补算法 什么是字符串循环左移后补? 左移就是把字符串第 n+1 到 最后一个字符移到最前面,后补就是把1 到 m个字符 移到字符串最后面补上。 实现的核心思想是:先把第1个字符给临时变量然后把第2到n个字符分别向前移动1位,然后把临时变量放入到最后一位。 例:有字符串 abc
阅读全文
摘要:C语言关于浮点型赋值的注意事项 无论是float 还是 double 赋值的时候都要注意下面几点: 注意赋初值,且若要为0 则赋值 0.0 而不是 0,因为这样更规范,例如要赋值3,则 赋值 3.0; 参与运算并把结果赋予浮点型时,我们要注意参与运算的值最少都要一个浮点型,不然结果是错误的; 1.
阅读全文
摘要:字符串典型题目 回文的判断-C语言 回文 是一种顺序读和倒序读都一样的字符串,例如:“1234321” 正这读 1234321 反着读:1234321 所以它是回文 ,回文还有 ABCDCBA …… 那么在做这种题,我们就需要把头和尾比较,一讲到头和尾比较,就想到用循环i 遍历头(数组头) 和 用循
阅读全文
摘要:清全部空写法-C语言 [清字符串里面的全部空格] 自己看啦 不知道怎么说 反正代码里注释看的明白就明白了。 /* *时间: 2020年9月14日 11:23:49 *例: 清除字符串里面的空格。 *核心: 遇空格跳过 */ #include<stdio.h> void fun(char *str)
阅读全文
摘要:N*N内递矩阵算法 如图就是一个n*n内递矩阵,如何去创建他呢? 首先,我们知道如图的5*5(N*N)内递矩阵由外而内是有3(m)层,第一个圈圈都为1,内二圈圈都为2,内三圈圈都为3. 我们可以仔细观察 并 用笔把他对应的坐标写出来,则有: 2.用i 和 j 和k来遍历元素行和元素列,并且有些行和列
阅读全文
摘要:四舍五入算法-C语言 四舍五入算法:如果要求精确到小数第N位,则需要对N+1进行运算,方法是将该 数 乘以 10^N+1 次方后 + 5,然后除以10并强制转换成长整形(Long)型,再将该数除以10的N次方,同时转换为浮点型(Double\float)。 步骤解析:1.将该 数 乘以 10^N+1
阅读全文
摘要:素数也称为质数, 一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。(规定1既不是质数也不是合数)。 我们可以利用循环内嵌来判断质数,根据性质可知质数是大于1的且只能被1和本身整除。举个例子:求100以内全部素数并且把它们赋入result数数组里。 那么有代码: /* *时间:
阅读全文
摘要:C语言fopen函数mode浅解 C语言fopen()函数有以下12种模式,如下: 打开模式 只可以读 只可以写 读写兼备 文本模式 r w a r+ w+ a+ 二进制模式 rb wb ab rb+ (r+b) wb+ (w+b) ab+ (a+b) 其中,二进制模式与文本模式操作相似,只不过是以
阅读全文
摘要:#include<stdio.h> int main() { int arr[10] = {1,3,5,7,9,2,4,6,8,10}; //随便打的 int i,j,temp; // i j 是引用下标的 temp 是用来表示不变的"比数" for(i = 0;i<10;i++) // 从第二个元
阅读全文
摘要:简介 :交换法排序是将每一位数与其后的所有数一一比较,如果发现符合的数据,则交换数据。 过程:首先,用第一个数依次与其后的所有数进行比较,如果存在比值大(小)的数,则交换这两个数,然后-继续向后比较其他数直到最后一个数,然后在使用第二个数与其后面的数进行比较,如果存在比其值大(小)的数,则交换这两个
阅读全文
摘要:第一种写法(前冒泡): /* C程序数组算法 — 冒泡法排序 * 此例子按照 大 -> 小 排序 * 原理:两两相比较,然后进行大小对调 * 比较次数: n^2 次 * 说明:冒泡排序是相对稳定的排序算法,当待排序的列有序时,效果最好! * 时间:2020年7月12日 21:59:22 */ #in
阅读全文
摘要:/* C程序数组算法 — 选择排序法 * 此例子按照 大 -> 小 排序 * 原理:后一个和前一个相比较,若大于/小于 就利用"位置"对调。 * 比较次数: n(n-1) / 2 次 && 互换次数:n-1 次 * 说明:此算法适用于数字比较少的排序 && 此方法和冒泡法相似的一批 * 跟着逻辑走
阅读全文
摘要:C语言利用for循环打印菱形(高度为奇数) 这次用的方法是上下部分分开打印,先打印上部分,再打印下部分。 先举个简单的例子打印,再改进代码,登堂入室从而理解。 例:打印一个高度(高度必须为奇数)为 5 的菱形,上下拆分 就是 上部分为 3行的三角形 ,下部分为2行的倒三角形(代码如下:) #incl
阅读全文
摘要:#include<stdio.h> int main() { int i,j; for(i = 1;i<=5;i++)//打印高度为5的数字金字塔 { for(j = 1;j <= 5-i;j++)//打印空格 { printf(" "); } for(j=1;j<=i;j++)//打印随高度递增数
阅读全文
摘要:随手一写 2020年6月5日 13:06:57 #include<stdio.h> #include<Windows.h> void time(void) { int x = 0, y = 0, z = 0,q = 0; while(1) { Sleep(1000); printf("%d时%d分%
阅读全文
摘要:C语言解决汉诺塔问题 汉诺塔是典型的递归调用问题: hanoi简介:印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有
阅读全文
1