排序

8 篇文章
使用分而治之演算法的思想, 可以實現另外一種排序法, 即快速排序法. 在快速排序法中, 首先將序列分為三個部分 : 左段、支點和右段. 支點是來自序列中的某一個元素, 其取法包括但不限於 : 取序列第…
在之前的文章中, 我們講述了分而治之演算法, 而它的思想可以被用於排序中. 這種排序法設計的整體思路為 : 令 是當前要排序的元素數量, 若 , 則演算法終結; 當 時, 電腦可以在瞬間通過交換來完成…
對於桶排序法, 如果給出的數據範圍太大, 以至於超過了記憶體的最大容量, 那麼顯然排序無法在這台電腦上完成. 另外, 就算數據範圍沒有超過記憶體最大容量, 但是排序的數據比較少, 我們仍然要大面積地配…
如果記憶體可以無限, 那麼就可以考慮一種使用空間來換時間的排序法, 也就是桶排序法. 假如排序的範圍是 , 其中 , 那麼只要宣告 個序列就可以了. 我們將範圍 影射為 , 如果存在一個值屬於 的序列…
在《資料結構》系列的文章中, 我們通過向量 (Vector) 已經介紹過如何在一個連續的陣列中插入若干個物件. 現在想像一個序列, 如果給定的序列是有序的, 而且每一次的插入都插入到對應的位置, 使得…
氣泡排序法本質上也是一種選擇排序法, 它使用 "氣泡" 策略, 讓最大的元素像氣泡一樣冒到最上面, 也就是與陣列最後一個元素進行交換. 不過它並不是像選擇排序法那樣直接進行交換, 而是通過相鄰交換的形…
如果大家沒有學習過任何演算法, 又想要對一個序列進行重新排序, 大家最容易想到的方法, 就是首先找到序列中最大或著最小的元素, 然後再找到次大或著次小的元素, 不斷重複上述步驟, 最後就得到了標準排列…
名次在生活中非常常見, 看到名次, 大家可能第一時間就想起了大家在學校的時候, 成績的名次; 大家也可能想起對於某一類東西的評測名次... 要想有名次, 就必須有權的概念. 比如一個班裡的所有學生的名…

關注我們的微信官方帳號

微信官方帳號