基本思想為:
1.先從待排序區(qū)間中取出一個(gè)數(shù)作為基準(zhǔn)數(shù),一般選擇首(或末元素)作為基準(zhǔn)元素(key),這樣易于理解也不易出錯(cuò)。關(guān)于其它位置選擇方法及出現(xiàn)的問題這里暫不敘述。
2.分區(qū)過程,將比這個(gè)數(shù)大的數(shù)全放到它的右邊,
小于或等于它的數(shù)全放到它的左邊。
3.再對左右區(qū)間重復(fù)第二步,直到各區(qū)間只有一個(gè)數(shù)。
這里引用網(wǎng)友提出的易于理解的挖坑填坑思想更加易于記憶與理解。
詳細(xì)實(shí)現(xiàn)代碼如下:
捕獲1.PNG
捕獲2.PNG
完全代碼及測試結(jié)果如下:
捕獲3.PNG
捕獲4.PNG
現(xiàn)進(jìn)行第一種改寫,將前后搜尋相繼進(jìn)行,再以交換替代填坑,過程不再贅述,上代碼:
捕獲5.PNG
捕獲6.PNG
其他改進(jìn)算法,如隨機(jī)選取基準(zhǔn),等待后續(xù)更新。