#includevoid quicksort(int , int);
int a[101],n,t,temp; //定義全域性變數,這三個變數需要在子涵數中使用。
int main(void)
printf("\n");
quicksort(1,n);
for(int i = 1; i <= n; i++ )
getchar();getchar(); //用來暫停程式,便於檢視程式輸出結果,可用system("pause");等代替
return 0;
}void quicksort(int left, int right)
temp = a[left]; //temp中存放著基準數
while( i != j )
while(a[i] <= temp && i < j)
if( i < j )
} a[left] = a[i]; // 將基數歸位,
a[i] = temp;
quicksort(left, i-1); //繼續處理左邊的,這裡是乙個遞迴過程。
quicksort(i+1, right); // 繼續處理右邊的,這裡是乙個遞迴過程。
經典排序 快速排序 C語言版
快速排序 選取陣列的第乙個數作為軸,從末尾的數字開始比較,當比軸小則與軸交換位置,在用軸與開頭的數字進行比較,當比軸大則與軸交換位置,最終確定軸的位置。之後從軸的位置將陣列分為兩個部分,對各個部分重複選軸定軸的操作 include int partition int s,int low,int hi...
快速排序Qsort C語言版
快速排序 quicksort 是分治法的典型例子,它的主要思想是將乙個待排序的陣列以陣列的某乙個元素x為軸,使這個軸的左側元素都比x小,而右側元素都比x大 從小到大排序 然後以這個x在變換後陣列的位置i分為左右兩個子陣列,再分別進行快速排序,直到子陣列中只有乙個元素為止。分治法將原有問題分解成若干個...
快速排序(QuickSort) C語言版
include include define maxsize 20 順序表的最大長度 typedef int keytype 定義關鍵字型別為整數型別 typedef struct redtype 記錄型別 typedef struct sqlist 順序表型別 quicksort int part...