int partition(int A[] , int len)
{
int pivot = A[0];
int low = 0;
int high = len-1;
while(low < high){
for(; high>low && A[high] >= pivot; high--);
A[low] = A[high];
for(; high>low && A[low] <= pivot; low++);
A[high] = A[low];
}
A[low] = pivot;
return low;
}
void quicksort(int A[], int len)
{
if(len == 0 || len == 1)
return;
int index = partition(A,len);
quicksort(A, index);
quicksort(A+index+1, len-index-1);
}
int main()
{
int A[] = {1,5,4,7,9,2,3,6,8};
int len = sizeof(A)/sizeof(A[0]);
for(int i = 0; i < len ; i++)
printf("%d ", A[i]);
printf("\n");
quicksort(A,len);
for(int i = 0; i < len ; i++)
printf("%d ", A[i]);
printf("\n");
return 1;
}
QUICK SORT
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內容
- 算法相關GitHub持續(xù)更新,歡迎打臉~ 排序算法之選擇排序 時間復雜度:O(n2) 空間復雜度:O(1) 是否穩(wěn)...
- Merge-sort, is ideally suitedfor very large data sets, wh...
- 1101.Quick Sort 題目分析 Input:第一行:一個正整數N(N<=100000)第二行:N個互不相...