标签:
归并排序的思想就是:二分法
void MergeSortData(int DataArray[],int left,int right,int DataNum) { int TempArray[10000]; int mid=left+(right-left)/2; int i=left,j=mid+1,TempNum=0; while(i<=mid && j<=right) { if(DataArray[i]<DataArray[j]) { TempArray[TempNum]=DataArray[i]; TempNum++; i++; } else { TempArray[TempNum]=DataArray[j]; TempNum++; j++; } } while(i<=mid) { TempArray[TempNum]=DataArray[i]; TempNum++; i++; } while(j<=right) { TempArray[TempNum]=DataArray[j]; TempNum++; j++; } for(i=0;i<DataNum;i++){ DataArray[left+i]=TempArray[i]; } } void MergeSort(int DataArray[],int left,int right) { if(left==right)return; else { int mid=left+(right-left)/2; MergeSort(DataArray,left,mid); MergeSort(DataArray,mid+1,right); MergeSortData(DataArray,left,right,right-left+1); } }
标签:
原文地址:http://www.cnblogs.com/flipped/p/4993146.html