#include <stdio.h>
#include <stdlib.h>
#define SIZE 20
int partition(int l, int r, int data[SIZE])
{
int v = data[r];
int i = l - 1;
int j = r;
while(1){
while(data[++i] < v);
while(v < data[--j])
if(j == i) break;
if(j <= i) break;
int t = data[i]; data[i] = data[j]; data[j] = t;
}
int t = data[i]; data[i] = data[r]; data[r] = t;
return i;
}
void quickSort(int l, int r, int data[SIZE])
{
if (r <= l) {
return;
}
int p = partition(0, r, data);
quickSort(l, p - 1, data);
quickSort(p + 1, r, data);
}
int main(){
int data[SIZE];
for(int i=0;i<SIZE;i++){
data[i] =(rand()%20);
printf("%d ",data[i]);
}
printf("\n");
quickSort(0, SIZE-1, data);
for(int j=0;j<SIZE;j++){
printf("%d ",data[j]);
}
}
选择排序
最新推荐文章于 2024-09-28 22:14:04 发布