排序算法总结--C++代码实现
来源:互联网 发布:u盘检测工具 知乎 编辑:程序博客网 时间:2024/06/05 10:57
1.常见排序算法
2. 插入排序
2.1 直接插入排序
void print(int *arr, int nCount, int n=0){int i = 0;printf("%d==== ", n);while(i < nCount) printf("%2d ", arr[i++]);printf("\n");}// Straight Insertion Sortvoid InsertSort(int* arr, int nCount){if (arr == NULL || nCount < 2){return;}for(int i = 1; i < nCount; i++){if(arr[i] < arr[i-1]){int t= arr[i];int j = i;while((j > 0) && (t <= arr[j-1])){arr[j] = arr[j-1];j--;}arr[j] = t;}}}
2.2 希尔排序 -- 插入
void print(int *arr, int nCount, int n=0){int i = 0;printf("%d==== ", n);while(i < nCount) printf("%2d ", arr[i++]);printf("\n");}// ShellInsertSortvoid ShellInsertSort(int* arr, int nCount){if (arr == NULL || nCount < 2){return;}int dk = nCount/2;while(dk > 0){for(int i = dk; i < nCount; i++){if (arr[i] < arr[i-dk]){int t = arr[i];int j = i;while(j-dk>=0 && arr[j-dk]>t){arr[j] = arr[j-dk];j-=dk;}arr[j] = t;}print(arr,nCount,i);}print(arr,nCount,dk);dk = dk/2;}}
3. 选择排序
3.1直接选择排序
empty
3.2堆排序--选择
4. 交换排序
4.1 冒泡排序
void print(int *arr, int nCount, int n=0){int i = 0;printf("%d==== ", n);while(i < nCount) printf("%2d ", arr[i++]);printf("\n");} void BubbleSort(int *arr, int nCount) {for(int i = 0; i < nCount; i++){for(int j = 1; j < nCount-i; j++){if (arr[j-1] > arr[j]){arr[j-1] += arr[j];arr[j] = arr[j-1] - arr[j];arr[j-1] = arr[j-1] - arr[j];}}print(arr, 10, i);} }
4.2 快速排序
0 0
- 常用排序算法总结与代码实现(C语言)
- 排序算法总结与C代码
- 排序算法总结与C代码
- 排序算法总结与C代码
- 排序算法总结&&java代码实现
- 排序算法总结--C++代码实现
- 排序算法总结与代码实现
- 归并排序算法 C代码实现
- 归并排序算法 C代码实现
- 归并排序算法 C代码实现
- 排序算法C语言实现代码
- linux c 实现八大排序算法总结
- 排序算法总结-C语言实现
- 排序算法(C实现)------- 总结
- 排序算法总结-C语言实现
- 常见排序算法C/C++实现总结
- 排序算法 C语言实现 总结
- 排序算法代码总结
- Java设计模式之中介者模式
- 火柴棒等式
- 双向链表的基本操作
- C++中的4中类型转换方式
- 设计模式之装饰模式
- 排序算法总结--C++代码实现
- 遍历一个ul设置各个li不同的样式
- test3
- 重写
- centos7最小安装
- 程序的机器级表示·三
- Sphinx参考手册(三)
- lesson6.3从键盘输入字符串
- 版面中“线”的意义