快排练习
#include <stdio.h> int find(int num[], int b, int e){ int temp = num[b]; int i = b; int j = e; while(i < j){ while(i < j && num[j] > temp) j--; if(i < j){ num[i] = num[j]; i++; } while(i < j && num[i] < temp) i++; if(i < j){ num[j] = num[i]; j--; } } num[i] = temp; return i; } kp(int num[], int b, int e){ int n; n = find(num, b, e); if(n > b){ kp(num, b, n - 1); } if(n < e){ kp(num, n + 1, e); } } main(){ int i; int num[] = {1, -2, 3, 10, -4, 7, 2, -5,}; kp(num, 0, 7); for(i = 0; i < 8; i++) printf("%d ",num[i]); }