排序算法总结2
来源:互联网 发布:区姓和欧姓 知乎 编辑:程序博客网 时间:2024/05/01 04:16
归并排序:
void merge(int *a,int *b ,int left,int right){ int l = left; int r = right+1; int m = (left+right)/2; int k = m+1; int i = left; while (l<(m+1)&&k<r) { if (a[l]<a[k]) { b[i] = a[l]; i++; l++; } else { b[i] = a[k]; i++; k++; } } if (k>=r) { while (l<(m+1)) { b[i] = a[l]; i++; l++; } } else { while (k<r) { b[i] = a[k]; i++; k++; } } for (int i = left;i<=right;i++) { a[i] = b[i]; }}void merge_sort(int * a,int * b,int left,int right){ if (left < right) { int middle = (left+right)/2; merge_sort(a,b,left,middle); merge_sort(a,b,middle+1,right); merge(a,b,left,right); }}int main(){ int a[10] = {9,2,8,3,5,7,6,1,4,10}; int b[10]={0}; merge_sort(a,b,0,9); for (int i=0;i<10;i++) { cout<<a[i]<<" "; } return 0;}
平均时间复杂度:nlogn
额外空间:n
稳定性:稳定
比较操作的次数介于(nlogn) / 2和nlogn - n + 1
- 排序算法总结2
- 排序算法个人总结(2)
- 排序算法个人总结(2)
- 排序算法总结2-直接选择排序
- 算法排序2-计数排序总结
- 排序算法总结(2)--插入排序
- 算法--排序算法总结
- 算法:排序算法总结
- 算法:排序算法总结
- 算法-排序算法总结
- 算法-排序算法总结
- 【排序算法】排序算法总结
- 算法与数据结构-常用排序算法总结2-计数排序
- 算法与数据结构-常用排序算法总结2-桶排序
- 排序算法总结---希尔排序
- 排序算法总结---冒泡排序
- 排序算法总结----快速排序
- 排序算法总结---希尔排序
- uva 140 Bandwidth
- domino and mmc.exe (1936/0x790) has terminated abnormally
- .ini配置文件书写格式(转)
- 如何检测内存泄漏
- 网人5.02和DZ7整合文件及简要说明
- 排序算法总结2
- 【linux 开发】定时器使用setitimer
- 提高php执行效率
- 使用TextView/EditText应该注意的地方
- 成功应用机器学习的七个步骤
- C++虚函数的实现细节、虚析构函数 汇编解析
- 关于Android Package路的一些实例
- 熬之滴水成石:最想深入了解的内容--windows内核机制(7)
- 头像 代码段