菜鳥算法-快速排序

菜鳥算法

快速排序

func QuickSorter(array *[]int, start int, end int) {
        if start > end {
                return
        }

        pivot, head, tail := start, start, end

        for head < tail {
                // 移動(dòng)尾指針 尋找小于基準(zhǔn)值的數(shù) (這里基準(zhǔn)值選取的是頭部數(shù),所以先移動(dòng)尾指針)
                for (*array)[tail] >= (*array)[pivot] && head < tail {
                        tail--
                }
                // 移動(dòng)頭指針 尋找大于基準(zhǔn)值的數(shù)
                for (*array)[head] <= (*array)[pivot] && head < tail {
                        head++
                }

                if head < tail {
                        (*array)[head], (*array)[tail] = (*array)[tail], (*array)[head]
                } else {
                        // 將基準(zhǔn)值歸位
                        (*array)[pivot], (*array)[head] = (*array)[head], (*array)[pivot]
                }
        }

        QuickSorter(array, start, head-1)
        QuickSorter(array, head+1, end)
}
執(zhí)行結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 版本記錄 前言 將數(shù)據(jù)結(jié)構(gòu)和算法比作計(jì)算機(jī)的基石毫不為過(guò),追求程序的高效是每一個(gè)軟件工程師的夢(mèng)想。下面就是我對(duì)算法...
    刀客傳奇閱讀 5,391評(píng)論 4 72
  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,301評(píng)論 0 52
  • 概述:排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,826評(píng)論 0 15
  • 概述排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部的...
    Luc_閱讀 2,372評(píng)論 0 35
  • 每每想寫一些東西的時(shí)候,腦子里已經(jīng)打好草稿了但是一下筆的時(shí)候卻不知道該寫些什么了。腦子有時(shí)候很亂,想把所有經(jīng)歷過(guò)的...
    可樂(lè)媽咪露露醬閱讀 475評(píng)論 1 1

友情鏈接更多精彩內(nèi)容