快速排序quicksort算法优化
生活随笔
收集整理的這篇文章主要介紹了
快速排序quicksort算法优化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.基本想想
-
快速排序使用分治的思想
-
通過一趟排序將待排序列分割成兩部分,其中一部分所有元素均比基準大,另一部分均比基準小
-
分別對這兩部分元素繼續進行排序,以達到整個序列有序
2.快排的步驟
- 1.選擇基準
在待排序列中,按照某種方式挑出一個元素,作為 “基準”(pivot) - 2.分割操作
在基準左邊的元素都比該基準小,在基準右邊的元素都比基準大 - 3.遞歸
遞歸地對兩個序列進行快速排序,直到序列為空或者只有一個元素
3.基準的選取
- 固定位置
取序列的第一個或最后一個元素作為基準
- 隨機選取基準
取待排序列中任意一個元素作為基準
- 三數取中
對待排序序列中low、mid、high三個位置上數據進行排序,取他們中間的那個數據作為樞軸
4.快排算法優化
- 當待排序序列的長度分割到一定大小后,使用插入排序或者其它排序(數組短的時候,快排分割效率不高)
- 在一次分割結束后,可以把與基準p相等的元素聚在一起,繼續下次分割時,不用再對與基準p相等元素分割
5.效率比較
同樣的環境下,運行時間(s)
參考文獻
https://blog.csdn.net/hacker00011000/article/details/52176100
總結
以上是生活随笔為你收集整理的快速排序quicksort算法优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 石头剪刀布程序流程图_机器学习终章:剪刀
- 下一篇: mysql建表_128、mysql建表和