归并排序
来源:互联网 发布:苏联国歌 知乎 编辑:程序博客网 时间:2024/06/09 14:31
归并排序思想:首先把要排序的数组分为两部分,然后对这两部分数组分别进行归并排序(直至分到只剩一个数),最后将这两个数组合并。注意合并的时候是将这两个数组里的数移动到一个新的数组里面,当然是由小到大。
代码实现:
void mergeSort(int *num, int f, int e, int *p){ if(f==e) { return; } int mid=(f+e)/2; mergeSort(num, f, mid, p); mergeSort(num, mid+1, e, p); merge(num, f, mid, mid+1, e , p);}void merge(int *num,int f1, int e1, int f2, int e2, int *p) //两个要归并的数组的开始下标和结束下标 f1在f2前面{ int a1 = f1; int a2 = f2; int i = 0; while(a1<=e1 && a2<=e2) { if(num[a1]>=num[a2]) { p[i++] = num[a1++]; } else { p[i++] = num[a2++]; } } while(a1<=e1) { p[i++] = num[a1++]; } while(a2<=e2) { p[i++] = num[a2++]; } for(int k=0; k<i; k++) { num[k+f1]=p[k]; }}
阅读全文
0 0
- 归并排序-归并排序
- 归并和归并排序
- 归并与归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 排序::归并
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 获取咕咚运动移动应用中的数据——非官方API
- 深入探究Coonnect函数
- 移动硬盘提示磁盘结构损坏且无法读取怎么办
- AndroidStudio快捷键整理
- 往csdn博客文章里面插入动态图片(视频)
- 归并排序
- 算法分析与设计课程(16):【leetcode】 Integer to Roman
- zigbee点对点串口收发
- Linux下的C语言编程——线程编程基本操作
- 使用gdb调试多进程多线程程序
- 获取咕咚运动移动应用中的数据——Python实现
- 自定义View填充圆
- Coursera加密与加密货币导论1-5简单加密货币
- [LeetCode] Sliding Window Median 滑动窗口中位数