归并排序

来源:互联网 发布:恶意软件会盗取 编辑:程序博客网 时间:2024/06/08 14:25

上了算法课说到了归并排序记录一下:

#include<iostream>using namespace std;void mergeArrary(int arr[], int first, int mid, int last, int temp[]){int i = first, j = mid + 1;int m = mid, n = last;int k = 0;while (i <= mid && j <= n){if (arr[i] <= arr[j]){temp[k++] = arr[i++];}else{temp[k++] = arr[j++];}}while (i <= mid){temp[k++] = arr[i++];}while (j <= n){temp[k++] = arr[j++];}for (i = 0; i < k; i++){arr[first + i] = temp[i];}}void mergesort(int arr[], int first, int last, int temp[]){if (first < last){int mid = (first + last) / 2;mergesort(arr, first, mid, temp);mergesort(arr, mid + 1, last, temp);mergeArrary(arr, first, mid, last, temp);}}int main(){int arr[] = { 6, 3, 8, 5, 9, 2, 4, 1 };int temp[8] = { 0 };mergesort(arr, 0, 7, temp);int i = 0;for (i = 0; i < 8; i++){cout << arr[i] << " ";}cout << endl;system("pause");return 0;}


0 0