上次写的排序忘记写归并排序了,所以这边给写一下。
代码展示:
void Merge(int arr[], int l, int q, int r){
int n=r-l+1;//临时数组存合并后的有序序列
int* tmp=new int[n];
int i=0;
int left=l;
int right=q+1;
while(left<=q && right<=r)
tmp[i++] = arr[left]<= arr[right]?arr[left++]:arr[right++];
while(left<=q)
tmp[i++]=arr[left++];
while(right<=r)
tmp[i++]=arr[right++];
for(int j=0;j
归并排序的主要思路是先将它们分成n分(n为元素个数),再往回处理,往回的时候做交换,当变成一个整体时,便排好序了。



