归并排序
来源:互联网 发布:赤月传说2进阶数据 编辑:程序博客网 时间:2024/06/05 12:19
void Merge(int *a, int s, int m, int e){int ans = 0;int anm = 0;int lens = m - s + 1;int lenm = e - m;int* temp = new int[e - s + 1];int i = 0;while (ans<lens && anm<lenm){temp[i] = a[s + ans] <= a[m + 1 + anm] ? a[s + ans++] : a[m + anm++ + 1];i++;}if (ans < lens){for (int j = 0; j < lens-ans; j++){temp[i] = a[s+ j + ans];i++;}}if (anm < lenm){for (int j = 0; j < lenm - anm; j++){temp[i] = a[m + 1 + j + anm];i++;}}for (int i = 0; i < e - s + 1; i++){a[s+i] = temp[i];}delete temp;temp = NULL;}void MergeSort1(int *a, int p, int r){if (p<r){int q = (p + r) / 2;MergeSort1(a, p, q);MergeSort1(a, q + 1, r);Merge(a, p, q, r);}}int main(){int a[] = { 1, 2, 7, 4, 6, 6, 7, 8, 10, 4 };MergeSort1(a, 0, sizeof(a) / sizeof(int)-1);for (int i = 0; i < 10; i++){cout<<(a[i])<<" ";}/*for (int i = 0; i < 10; i++){cout << random_select(a, 0, 9, i+1) << endl;}*///char str[] = "abcd";//showString(str, 4);return 0;}
0 0
- 归并排序-归并排序
- 归并和归并排序
- 归并与归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 排序::归并
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 一枚小小的灯泡,能够成为智能家居网络的 “神经中枢” 吗?
- 数据挖掘的十八般武艺,咳咳,十八个重要算法
- .NET Framework 4.5打补丁后,VS2012不能打开解决方案
- 自动生成button点击获取value jqyery
- java中过滤器、监听器、拦截器的区别
- 归并排序
- Intent.ACTION_PICK
- c#---HashSet对类的判重
- 让百度删除不想收录的域名或快照的最快方法
- SurfaceView双缓冲测试
- PAT (Advanced Level) Practise 1080 Graduate Admission (30)
- c++中的c_str()函数的作用是
- Spring Mvc添加验证码
- 找到Host地址