随笔分类 - 啊哈算法
C语言算法学习
摘要:1.规则:将一副扑克牌平均分成两份,每人拿一份。小哼先拿出手中的第一张扑克牌放在桌上,然后小哈也拿出手中的第一张扑克牌,并放在小哼刚打出的扑克牌的上面,就像这样两人交替出牌。出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即可将两张相同的牌及其中间所夹的牌全部取走,并依次放到自己手中牌的末尾。当任意
阅读全文
摘要:一、回文判断,用上节中的struct queue更方便一点,本节用stack作为入点 栈stack的一个难点是:指针top指向的是栈顶元素,还是空闲位置? 比如书中写法:top=0; top++; s[top] = x; -> 初始化起点为0,第一个写入元素位置为top=1; -> 这里top指针指
阅读全文
摘要:一、解密一个队列:“6 3 1 7 5 8 9 2 4” 首先将第1 个数删除,紧接着将第2 个数放到这串数的末尾,再将第3 个数删除并将第4 个数放到这串数的末尾,再将第5 个数删除……直到剩下最后一个数,将最后一个数也删除。按照刚才删除的顺序,把这些删除的数连在一起就是结果 注意: 1.这里的删
阅读全文
摘要:一、时间复杂度: 1.毫无疑问,桶排序是最快的,时间复杂度为 O(N+M),N=初始化列表长度,M=输入队列的长度 2.冒泡排序是最慢的,时间复杂度 O(N*(N-1)/2) ~~ O(N**2) 3.快速排序是对冒泡排序的一种改进,时间复杂度为 O(NlogN) 比如说,当今计算机的计算能力达到每
阅读全文
摘要:一、作为C++编程小白,有必要简单分析、记录下,快速排序算法的实现,以便后续复习: #include <stdio.h> int a[101], n; //定义全局变量,并在子函数中使用 void quicksort(int left, int right){ int i, j, t, temp;
阅读全文
摘要:冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。时间复杂度O(N **2) /* 同一个 project 内,只能有一个 main function*/ EG1. 输入一列数字,并以从大到小的顺序输出 #include <stdio.h>void main(){ i
阅读全文
摘要:一、简单的桶排序:非常浪费空间!而且限制较多!时间复杂度O(N+M) EG1. 编写一段程序,让计算机随机读入5 个数然后将这5 个数从大到小输出? #include <stdio.h> //引入头文件,包含很多常用函数,如printfint main() // int表示返回值,无需返回值用voi
阅读全文
浙公网安备 33010602011771号