?? 快速排序.cpp
字號(hào):
#include<stdio.h>
int N=3;
typedef struct{
char name[20];
int score;
}snode;
int partition(snode *r,int i,int j);
void quicksort(snode *r,int low,int high);
void outlist(snode* r);
main(){
int i;
snode *r;
printf("輸入所要排序的元素的數(shù)目N=");
scanf("%d",&N);
r=new snode[N+1];
printf("input score:");
for(i=1;i<N+1;i++)
scanf("%d",&r[i].score);
quicksort(r,1,N);
outlist(r);
delete[]r;
}
int partition(snode *r,int i,int j){
snode pivot=r[i];
while(i<j){
while(i<j&&r[j].score>=pivot.score) j--;
if(i<j)r[i++]=r[j];
while(i<j&&r[i].score<=pivot.score) i++;
if(i<j)r[j--]=r[i];
}
r[i]=pivot;
return i;
}
void quicksort(snode *r,int low,int high){
int pivotpos;
if(low<high){
pivotpos=partition(r,low,high);
quicksort(r,low,pivotpos-1);
quicksort(r,pivotpos+1,high);
}
}
void outlist(snode* r){
int i;
printf("排序后:\n");
for(i=1;i<=N;i++)
printf("%d,",r[i].score);
printf("\n");
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -