MergeSort(C++)
生活随笔
收集整理的這篇文章主要介紹了
MergeSort(C++)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <iostream>using namespace std;// Merge: 對數字進行合并
void Merge(int *arr,int begin,int mid,int end){int i=begin,j=mid+1,k=0;int *temp=new int[end-begin+1];while(i<=mid&&j<=end){if(arr[i]<=arr[j]){temp[k++]=arr[i++];}else{temp[k++]=arr[j++];}}while(i<=mid){temp[k++]=arr[i++];}while(j<=end){temp[k++]=arr[j++];}for(int i=begin,k=0;i<=end;i++,k++){arr[i]=temp[k];}delete []temp;
}// MergeSort: 對數組進行劃分
void MergeSort(int *arr,int begin,int end){if(begin>=end){return;}int mid=begin+(end-begin)/2;MergeSort(arr,begin,mid);MergeSort(arr,mid+1,end);Merge(arr,begin,mid,end);
}int main()
{int arr[]={6,1,2,7,34,9,3,4,5,90,10,8,43};int len=sizeof(arr)/sizeof(arr[0]);MergeSort(arr,0,len-1);for(int i=0;i<len;i++){cout << arr[i] << " ";}return 0;
}
總結
以上是生活随笔為你收集整理的MergeSort(C++)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是CAPL编程语言
- 下一篇: ABBYY FineReader 超强