當前位置:網站首頁>用快排的思維模擬實現“萬能“的冒泡排序--“Qsort“

用快排的思維模擬實現“萬能“的冒泡排序--“Qsort“

2022-01-27 19:08:12 xaiobit_hl

1.先來看一看剛學習c語言時,那時我們寫的冒泡排序 

 那時因為能力有限,把代碼寫死了,只能對整形的數組進行排序。



2.那麼問題來了,以後想要對字符數組,浮點型數組,結構體數組進行排序的時候,我們應    該如何設計代碼呢?

改進: 運用快速排序的思路(快排的函數:qsort)


參照CSDN:qsort


 解析:

參數1:void*類型的指針,可以接收任何類型的數組的地址;

參數2:接收數組的長度;

參數3:數組中一個元素的字節長度;

參數4:函數指針接收compare函數的返回值;

compare的返回值說明:


 

 以下代碼的返回值與上圖相呼應。

注意

由於它的參數類型是void*,因為不能通過直接解引用訪問元素,而

是將其强制轉化成接收待排序數組的指針類型,再對其進行解引用。

 


 

 3.再看看bubble_sort函數的改進

 注意:以上代碼中1、2是重點;bubble_sort參數中也是巧妙的用回調函數幫助實現了排序這一過程。


 4.補充。如果博友們還不能好好理解,這裏再舉出結構體排序的例子幫助大家進一步感受與理解。

 


 好啦!今天的類容就到這裏啦,感謝大家能看完,希望能幫助到需要的友友們!

版權聲明
本文為[xaiobit_hl]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201271908124609.html

隨機推薦