#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 10
typedef struct List{
int r[MAXSIZE];
int Length;
}SqList;
void swap(SqList* L, int low, int high)
{
int temp;
temp = L->r[low];
L->r[low] = L->r[high];
L->r[high] = temp;
}
void QuickSort(SqList* L)
{
void QSort(SqList* L, int low, int high);
QSort(L,1,L->Length);
}
int Partition(SqList* L, int low, int high)
{
int pivotkey = L->r[low];
while(low<high)
{
while(low<high&&L->r[high]>=pivotkey)
high--;
swap(L, low, high);
while(low<high&&L->r[low]<=pivotkey)
low++;
swap(L, low, high);
}
return low;
}
void QSort(SqList* L, int low, int high)
{
int piv;
if(low<high){
piv = Partition(L, low, high);
QSort(L, low, piv-1);
QSort(L, piv+1, high);
}
}
int main()
{
int i;
SqList* L =(SqList*)malloc(sizeof(SqList));
L->Length = MAXSIZE-1;
for(i=1; i<MAXSIZE; i++){
scanf("%d", &L->r[i]);
}
QuickSort(L);
for(i=1; i<MAXSIZE; i++){
printf("%d ", L->r[i]);
}
}
快速排序
最新推荐文章于 2021-11-19 16:57:43 发布