#include <stdio.h> void swap(int a[], int low, int high) { int t = a[low]; a[low] = a[high]; a[high] = t; } int partition(int a[], int low, int high) { int point = a[low]; while(low<high) { while(low<high && a[high]>=point) { high--; } swap(a,low,high); while(low<high && a[low]<=point) { low++; } swap(a,low,high); } return low; } void quicksort(int a[], int low, int high) { if(low<high){ int point = partition(a,low,high); quicksort(a,low,point-1); quicksort(a,point+1,high); } } int main() { int i; int a[] = {41,22,3,6,58,12,99,36,7,15}; int N = 10; quicksort(a, 0, N-1); for(i=0; i<N; i++) printf("%d ", a[i]); printf("\n"); return 0; } |
对数组进行排序
最新推荐文章于 2025-05-10 18:09:08 发布