c語言快速排序算法代碼


#include <stdio.h>
void print(int arr[], int length)
{
for(int i = 0; i < length; i++)
{
printf("%d ",arr[i]);
}
printf("\n");
}

void Qsort(int arr[], int low, int high)
{
if(low>=high)
return ;
int key = arr[low];
int i=low;
int j=high;
while(i<j)
{
// 從右邊往左邊找第一個小於key的
while(i<j)
{
if(arr[j] < key)
{
arr[i] = arr[j];
break;
}
j--;
}
//print(arr,high-low+1);
//從左邊往右邊找第一個大於key的
while(i<j) {
if (arr[i] > key) {
arr[j] = arr[i];
break;
}
i++;
}
//print(arr,high-low+1);
}
arr[i] = key;
//print(arr,high-low+1);
Qsort(arr, low, i-1);
Qsort(arr,i+1, high);

}



int main()
{
int a[10] = {72,6,57,88,60,42,83,73,48,85};
print(a,10);
Qsort(a, 0, 9);
print(a,10);
return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM