一個整數數組需要排序,如果每個數據的值變化範圍很小,則可以計數出每個值的數據個數,然後分別將這些值填寫到原數組中相應的位置。例如,20個數據,統計後發現10個3,6個2,4個1,則直接依次填寫在原數組中。統計需要線性的時間,填寫也是線性時間,故總時間是線性的。
相關詞條
-
線性時間
在計算複雜性理論,一個被稱為線性時間或 Ο(n)時間的算法,表示此算法解題所需時間正比於輸入資料的大小,通常以n表示。換句話說,執行時間與輸入資料大小為...
簡介 內容 常量時間 -
排序
排序是計算機內經常進行的一種操作,其目的是將一組“無序”的記錄序列調整為“有序”的記錄序列。分內部排序和外部排序,若整個排序過程不需要訪問外存便能完成,...
概念 冒泡排序 選擇排序 插入排序 希爾排序 -
桶排序
桶排序 (Bucket sort)或所謂的箱排序,是一個排序算法,工作的原理是將數組分到有限數量的桶子裡。每個桶子再個別排序(有可能再使用別的排序算法或...
定義 算法 代價 源碼 套用 -
希爾排序
希爾排序(Shell's Sort)是插入排序的一種又稱“縮小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一...
歷史 基本思想 穩定性 排序過程 算法分析 -
快速排序算法
快速排序(Quicksort)是對冒泡排序的一種改進。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通過一趟排序將要排序的數...
算法介紹 排序演示 示例代碼 最佳化 變種 -
分布排序
在基於關鍵字比較的一些排序算法之外,當預先知道有關待排序關鍵字的一些知識(如其分布範圍)時,就能構造出非基於比較的排序算法,而且能在最壞情況下達到線性時...
定義 性質 -
計數排序
O(n*log(n))的時候其效率反而不如基於比較的排序(基於比較的排序的時間複雜度在理論上的下限是O(n*log(n)), 如歸併排序,堆排序)
算法思想 算法過程 算法描述 總結 套用 -
統計排序
統計排序是一個非基於比較的線性時間排序算法。
-
拓撲排序
對一個有向無環圖(Directed Acyclic Graph簡稱DAG)G進行拓撲排序,是將G中所有頂點排成一個線性序列,使得圖中任意一對頂點u和v,...
預備知識 執行步驟 非計算機套用 套用 拓撲學