#include<stdio.h>
int main(){
int list[]={6,1,2,7,9,3,4,5,10,8};
int i;
for(i=0;i<sizeof(list)/sizeof(int);i++){
printf("%d\t",list[i]);
}
printf("\n");
printf("\n");
sort(list,sizeof(list)/sizeof(int),0);
for(i=0;i<sizeof(list)/sizeof(int);i++){
printf("%d\t",list[i]);
}
printf("\n");
}
int sort(int *list,int size){
int i,j;
int index_right;
int index_left;
int* base=list;
int temp;
index_left=1;
index_right=size-1;
for(;index_right>=index_left;index_right--){
if(list[index_right]<*base){
for(;index_left<index_right;index_left++){
if(list[index_left]>*base){
temp=list[index_left];
list[index_left]=list[index_right];
list[index_right]=temp;
break;
}
}
}
}
index_right++;
temp=list[index_right];
list[index_right]=*list;
*list=temp;
for(i=0;i<size;i++){
printf("%d\t",list[i]);
}
printf("\n");
if(index_right>1)
sort(list,index_right-1);
if(size-index_right-1>1)
sort(&list[index_right+1],size-index_right-1);
}
int main(){
int list[]={6,1,2,7,9,3,4,5,10,8};
int i;
for(i=0;i<sizeof(list)/sizeof(int);i++){
printf("%d\t",list[i]);
}
printf("\n");
printf("\n");
sort(list,sizeof(list)/sizeof(int),0);
for(i=0;i<sizeof(list)/sizeof(int);i++){
printf("%d\t",list[i]);
}
printf("\n");
}
int sort(int *list,int size){
int i,j;
int index_right;
int index_left;
int* base=list;
int temp;
index_left=1;
index_right=size-1;
for(;index_right>=index_left;index_right--){
if(list[index_right]<*base){
for(;index_left<index_right;index_left++){
if(list[index_left]>*base){
temp=list[index_left];
list[index_left]=list[index_right];
list[index_right]=temp;
break;
}
}
}
}
index_right++;
temp=list[index_right];
list[index_right]=*list;
*list=temp;
for(i=0;i<size;i++){
printf("%d\t",list[i]);
}
printf("\n");
if(index_right>1)
sort(list,index_right-1);
if(size-index_right-1>1)
sort(&list[index_right+1],size-index_right-1);
}