插入排序
来源:互联网 发布:华数传媒网络怎么退订 编辑:程序博客网 时间:2024/06/06 18:25
说来惭愧,大学这几年一直没怎么好好研究算法,趁着今年开了算法课,就好好的把算法给学一学,先从插入排序开始吧:
#include<stdio.h>#include<stdlib.h>#define random(x) (rand()%x)int main(){ // Get numbers int i, j, key; int array[100]; for (i = 0; i < 100; i++) { array[i] = random(9999); } // Display the intial result for (i = 0; i < 100; i++) { printf("%d\n", array[i]); } printf("Init Completed"); // Then we peform insertion sort for (i = 1; i < 100; i++) { key = array[i]; for (j = i-1; j >= 0; j--) { if (array[j] > key) { array[j+1] = array[j]; } else { break; } } array[j+1] = key; } // Out put the sorted result for (i = 0; i < 100; i++) { printf("\n%d", array[i]); }}基本上排序代码就中间的十行,还是算上了花括号的,思想很简单,从数组第一个数枚举到最后一个数,这是第一层循环,第二层循环找到已排序完成序列中新插入数的位置,并在寻找过程中不断把数的位置后移,这样就不断空出一个位置,直到找到这个位置后把新的key填入的这个位置。
空间复杂度O(n) 时间复杂度O(n^2)
0 0
- 插入排序-【插入排序】
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 单例模式
- jni断点调试
- Oracle中的date与timestamp
- qsort(),sort()排序函数
- Lotus Notes 8.5.1 Sametime无法传送文件,进度条0
- 插入排序
- 查看linux库文件32位还是64位
- 练习题
- Java中Date和Timestamp的区别
- hdu2087(kmp裸题)
- Dynamic Programming
- jquery学习一
- 二分图最小点覆盖 POJ 1325、2226、3041、3692、3829
- C++命名规则