归并排序
来源:互联网 发布:java web小项目下载 编辑:程序博客网 时间:2024/06/05 00:16
利用分治法和递归思想实现归并排序
#include<iostream>using namespace std;void MergeArray(int arr[], int first, int mid, int last, int temp[]){int i = first, j = mid + 1;int k = 0;while (i <= mid && j <= last){if (arr[i]<arr[j]){temp[k++] = arr[i++];}else{temp[k++] = arr[j++];}}while (i <= mid){temp[k++] = arr[i++];}while (j <= last){temp[k++] = arr[j++];}for (i = 0; i<k; i++){arr[first + i] = temp[i]; }}void Merge(int arr[], int left, int right, int temp[]){if (left >= right)return;else{int mid = (left + right) / 2;Merge(arr, left, mid, temp);Merge(arr, mid + 1, right, temp);MergeArray(arr, left, mid, right, temp);}}void mergeSort(int arr[], int len){int *temp = new int[len];Merge(arr, 0, len - 1, temp);memcpy(arr, temp, sizeof(int)*len);delete[]temp;}int main(){int arr[] = { 1,2,4,5,6,3,7,8};mergeSort(arr, sizeof(arr) / sizeof(int));for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)cout<<arr[i]<<" ";cout << endl;return 0;}
0 0
- 归并排序-归并排序
- 归并和归并排序
- 归并与归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 排序::归并
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- Java计算器
- 每天一个linux命令(37):date命令
- Zepto 使用中的一些注意点
- ArcGis转换OSM数据及其数据裁剪
- Java通过JNI调用C++
- 归并排序
- Is memcached a dinosaur in comparison to Redis?
- http://sass-lang.com/documentation/Sass/Script/Functions.html
- c#怎样将object转换过程int型
- 剑指off-复制复杂链表
- Fly-By Topology
- ACM_Floyd-Warshall (Floyd) 算法
- keySet 与entrySet 遍历HashMap性能差别
- 光标