計數(shù)排序和基數(shù)排序的區(qū)別 和常用的排序算法外,還有哪些奇葩而有趣的排序算法?
和常用的排序算法外,還有哪些奇葩而有趣的排序算法?排序算法有:冒泡排序-O(n^2)雞尾酒排序-O(n^2)插入排序-O(n^2)桶排序-O(n)需要O(k)額外空間計數(shù)排序-O(n k)需要O(n
和常用的排序算法外,還有哪些奇葩而有趣的排序算法?
排序算法有:冒泡排序-O(n^2)雞尾酒排序-O(n^2)插入排序-O(n^2)桶排序-O(n)需要O(k)額外空間計數(shù)排序-O(n k)需要O(n k)額外空間合并排序-O(NLog n)需要O(n)額外空間就地合并排序-O(n^2)二叉樹排序-O(NLog n)預(yù)期時間;O(n^2)最差時間;O(n)需要額外空間鴿子洞排序-O(n k)需要O(k)額外空間
1。穩(wěn)定排序算法1,氣泡排序2,雞尾酒排序3,插入排序4,桶排序5,計數(shù)排序6,合并排序7,基數(shù)排序8,二叉排序樹排序2,不穩(wěn)定排序算法1,選擇排序2,希爾排序3,組合排序4,堆排序5,平滑排序6,排序是計算機程序設(shè)計中的一項重要操作。它的功能是將任意序列的數(shù)據(jù)元素(或記錄)重新排列成有序的關(guān)鍵字序列。一種排序算法是穩(wěn)定的,即當(dāng)有兩個相同記錄的關(guān)鍵字R和s時,原表中R出現(xiàn)在s之前,則排序后的表中R也會出現(xiàn)在s之前。不穩(wěn)定的排序算法可能會改變相同鍵值中記錄的相對順序,但穩(wěn)定的排序算法永遠不會這樣做。不穩(wěn)定的排序算法可以具體實現(xiàn)為穩(wěn)定的。一種方法是手動展開鍵值比較,這樣在其他方面具有相同鍵值的兩個對象之間的比較將決定使用原始數(shù)據(jù)順序中的條目作為最終匹配。但是,請記住,此順序通常會帶來額外的空間負擔(dān)。擴展數(shù)據(jù):分類排序算法:1。根據(jù)列表的大?。╪),通過時間復(fù)雜度分類計算的復(fù)雜度(最差、平均和最佳性能)。一般來說,好的性能是O(nlogn),壞的性能是O(n^2)。對于排序,理想的性能是O(n)。另一方面,僅使用一個抽象密鑰比較的排序算法平均至少需要o(nlogn)。2內(nèi)存使用(空間復(fù)雜度)(和其他計算機資源使用)按空間復(fù)雜度分類。三。穩(wěn)定的排序算法根據(jù)相等的鍵(換句話說,值)保持記錄的相對順序。
數(shù)據(jù)結(jié)構(gòu)的排序算法中,哪些排序是穩(wěn)定的,哪些排序是不穩(wěn)定的?
因為這是一個Java問題,所以這是典型的TOPK問題。首先取前100個數(shù)字構(gòu)建一個最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時調(diào)整堆。堆中最后100個元素就是結(jié)果??臻g復(fù)雜度為K,時間復(fù)雜度為nlogk