0%

排序

快速排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void QuickSort(int arr[],int left,int right){
if(right<=left) return;
int i=left; int j=right;
int key=arr[(i+j)/2];
while(i<=j){
while(arr[i]<key){
i++;
if(i==right){
break;
}
}
while(arr[j]>key){
j--;
if(j==left){
break;
}
}
if(i<=j){
swap(arr[i],arr[j]);
i++;j--;
}
}
QuickSort(arr,left,j);
QuickSort(arr,i,right);
}

归并排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void mergesort(int arr[],int s,int t,int temp[]){
if(s>=t) return;
int mid=(s+t)>>1;
mergesort(arr,s,mid,temp);
mergesort(arr,mid+1,t,temp);
int i=s; int j=mid+1; int k=s;
while(i<=mid&&j<=t){
if(arr[i]<=arr[j]) temp[k++]=arr[i++];
else temp[k++]=arr[j++];
}
while(i<=mid) temp[k++]=arr[i]++;
while(j<=t) temp[k++]=arr[j++];
for(int l=s;l<=t;l++) arr[l]=temp[l];
}
-------------本文结束感谢您的阅读-------------