標籤:blog io for ar div linux amp size
#include <stdio.h>// 數組長度#define LENGTH(array) ( (sizeof(array)) / (sizeof(array[0])) )/* * 快速排序 * * 參數說明: * a -- 待排序的數組 * l -- 數組的左邊界(例如,從起始位置開始排序,則l=0) * r -- 數組的右邊界(例如,排序截至到數組末尾,則r=a.length-1) */void quick_sort(int a[], int l, int r){ if (l < r) { int i,j,x; i = l; j = r; x = a[i]; while (i < j) { while(i < j && a[j] > x) j--; // 從右向左找第一個小於x的數 if(i < j){ //a[i++] = a[j];a[i] = a[j];i++;} while(i < j && a[i] < x) i++; // 從左向右找第一個大於x的數 if(i < j){ a[j] = a[i];j--;} } a[i] = x; quick_sort(a, l, i-1); /* 遞迴調用 */ quick_sort(a, i+1, r); /* 遞迴調用 */ }}void main(){ int i; int a[] = {30,40,60,10,20,50}; int ilen = LENGTH(a); printf("before sort:"); for (i=0; i<ilen; i++) printf("%d ", a[i]); printf("\n"); quick_sort(a, 0, ilen-1); printf("after sort:"); for (i=0; i<ilen; i++) printf("%d ", a[i]); printf("\n");}