排序算法之归并排序

来源:互联网 发布:t型匹配网络 ads 编辑:程序博客网 时间:2024/06/06 17:04

归并排序:

  排序类别  

  排序方法  

时间复杂度

  空间复杂度  

  稳定性  


  平均情况  

  最坏情况  

  最好情况  

归并排序

归并排序

O(nlog2n)

O(nlog2n)

O(nlog2n)

O(n)

稳定



代码:

#include <iostream>#include <cstdio>using namespace std;void Merge(int Array[], int start, int mid, int end){   int i = start;   int j = mid + 1;   int k = 0;   int temp[end - start + 1];      while(i <= mid && j <= end){     if(Array[i] <= Array[j]){        temp[k++] = Array[i++];     }     else{        temp[k++] = Array[j++];     }   }   while(i <= mid){     temp[k++] = Array[i++];   }   while(j <= end){     temp[k++] = Array[j++];   }   for(int i = 0; i < k; i++){     Array[start+i] = temp[i];   }}void MergeSort(int Array[], int start, int end){    if(start >= end){        return ;    }    int mid = (start + end) >> 1;    MergeSort(Array, start, mid);    MergeSort(Array, mid+1, end);    Merge(Array, start, mid, end);}int main(){    int a[] = {1,3,6,5,9,2,8,7,0,4};    MergeSort(a, 0, 9);    for(int i = 0; i < 10; i++){        cout << a[i] << " ";    }}


0 0
原创粉丝点击