您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關有哪些基礎排序法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
基礎排序法有:1、選擇排序,分為“簡單選擇排序”和“堆排序”;2、插入排序,分為“簡單插入排序”和“希爾排序”;3、交換排序,分為“冒泡排序”和“快速排序”;4、歸并排序;5、基數排序。
基礎排序法
排序
沒有一種排序算法在任何情況下都是最優的,必須根據實際情況選擇最優的算法來解決問題
算法穩定性:在一組待排序記錄中,如果存在任意兩個相等的記錄 R 和 S,且在待排序記錄中 R 在 S 前,如果在排序后 R 依然在 S 前,即它們的前后位置在排序前后不發生改變,則稱為排序算法為穩定的
選擇排序
簡單選擇排序
簡單選擇排序(Simple Selection Sort)是一種直觀的排序算法,在未排序的序列中,選出最小的元素和序列的首位元素交換,接下來在剩下的未排序序列中再選出最小元素與序列的第二位元素交換,依次類推,最后形成從小到大的已排序序列
時間復雜度:O(N2)
堆排序
將無序的序列生成一個最大堆,將堆頂元素與最后一個元素對換位置,將剩下元素生成最大堆,依次進行元素交換并生成最大堆
時間復雜度:O(NlogN) 空間復雜度:O(1)
插入排序
簡單插入排序
將待排序的一組序列分為已排好序和未排序的兩個部分,初始狀態時,已排序序列僅包含第一個元素,未排序序列中的元素為除了第一個以外N-1個元素;此后將未排序序列中的元素逐一插入到已排序的序列中。如此往復,經過N-1次插入后,未排序序列中元素個數為0,則排序完成
時間復雜度:O(N2) 穩定排序
希爾排序
將待排序的一組元素按一定間隔分為若干個序列,分別進行插入排序。開始時設置的"間隔"較大,在每輪排序中將間隔逐步減小,直到"間隔"為1,也就是最后一步是進行簡單插入排序
時間復雜度:和增量序列的選取有關 非穩定排序
交換排序
冒泡排序
對元素個數為 N 的待排序序列進行排序時,共進行N-1次循環。在第 k 次循環中,對從第1到第N-k個元素從前往后進行比較,每次比較相鄰的兩個元素,若前一個元素大于后一個元素,則兩者互換位置,否則保持位置不變
時間復雜度:O(N2)
快速排序
將未排序元素根據一個作為基準的"主元"分為兩個子序列,其中一個子序列的記錄均大于主元,而另一個子序列均小于主元,然后遞歸地對這兩個子序列用類似的方法進行排序
時間復雜度:O(Nlog2N)
歸并排序
將大小為 N 的序列看成 N 個長度為1的子序列,接下來將相鄰子序列兩兩進行歸并操作,形成N/2(+1)個長度為2(或1)的有序子序列;然后再繼續進行相鄰子序列兩兩歸并操作,如果一直循環,直到剩下1個長度為 N 的序列,則該序列為原序列完成排序后的結果
時間復雜度:O(Nlog2N) 空間復雜度:O(N)
基數排序
桶排序
如果已知 N 個關鍵字的取值范圍是在 0 到 M-1 之間,而 M 比 N 小的多,則桶排序算法將關鍵字的每個取值建立一個"桶",即建立 M 個桶,在掃描 N 個關鍵字時,將每個關鍵字放入相應的桶中,然后按桶的順序收集一遍就自然有序了
基數排序
基數排序是桶排序的一種推廣,它所考慮的待排記錄包含不止一個關鍵字
看完上述內容,你們對有哪些基礎排序法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。