思想:採用分治的排序策略,隨機取一基準值,分別從陣列兩側與基準值比較,以公升序排列為例,若左邊出現比基準值大的數,則停止取數,記錄當前元素下標,開始從右側取數與基準值相比較,若出現比基準值小的數,停止,將左側與右側數做交換……以此類推,當左邊指標與右邊指標重疊時,停止本次迴圈。
#includeint a[30] = ;
int fastsort(int *a,int low,int high)
while( i != j)
while(a[j] > basic)
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
index = i;
fastsort(a,low,index-1);
fastsort(a,index+1,high);
return index;
}int main(void)
}
快速排序演算法 C語言實現
快速排序演算法 c語言實現 注 本篇內容為翻譯,之所以選擇這篇進行翻譯原因是該文章含有動畫,能夠更加直觀地展示快速排序。同時,可以仔細看一下 中把結構化的思想給予了更加充分地表現。按照功能進行模組劃分的思想得到了徹底地貫徹。以下內容翻譯自 譯文 在快速排序演算法中,使用了分治策略。首先把序列分成兩個...
快速排序演算法 C語言實現
注 本篇內容為翻譯,之所以選擇這篇進行翻譯原因是該文章含有動畫,能夠更加直觀地展示快速排序。同時,可以仔細看一下 中把結構化的思想給予了更加充分地表現。按照功能進行模組劃分的思想得到了徹底地貫徹。以下內容翻譯自 譯文 在快速排序演算法中,使用了分治策略。首先把序列分成兩個子串行,遞迴地對子序列進行排...
快速排序演算法(C語言實現)
自實現部分可參看慕課網陳越老師資料結構課程。庫函式函式原型 void qsort void buf,size t num,size t size,int compare const void const void 函式說明 對buf指向對資料 包含num項,每項的大小為size 進行快速排序。voi...