HOME 首頁
SERVICE 服務產(chǎn)品
XINMEITI 新媒體代運營
CASE 服務案例
NEWS 熱點資訊
ABOUT 關于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    網(wǎng)頁排序算法有哪些(網(wǎng)頁排序算法有哪些方法)

    發(fā)布時間:2023-03-22 15:51:02     稿源: 創(chuàng)意嶺    閱讀: 1270        問大家

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于網(wǎng)頁排序算法有哪些的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關鍵詞,就能返回你想要的內容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    創(chuàng)意嶺作為行業(yè)內優(yōu)秀企業(yè),服務客戶遍布全國,網(wǎng)絡營銷相關業(yè)務請撥打175-8598-2043,或微信:1454722008

    本文目錄:

    網(wǎng)頁排序算法有哪些(網(wǎng)頁排序算法有哪些方法)

    一、前端總結算法之十大排序

    1, 相鄰之間相比較,左邊比右邊大的話,交換位置。

    2,第一輪下來,已經(jīng)把最大的值選出來,并排在最后位,這樣剩下需排序的的數(shù)組減1,依次類推。

    1,找一個基準點(一般是中間數(shù))

    2,和基準值比較,比基準值小放leftList,比基準值大放rightList

    3,遞歸執(zhí)行上述操作,直到arr.length <= 1

    1,找到數(shù)組中最小值的索引

    2,把最小值排到第一位來。以此類推

    類似我們打撲克牌,牌從左向右的排序,抽出一張牌插到合適的位置放。

    1,抽出位置1的牌,與位置0比較,當位置0的牌比1大時, 先把0的值填入位置1。剩下0位置插入。

    2,抽出位置2的牌,與前面位置1比較,當位置1比2大時,先把1的值填入2位置,位置1空出。往下一層比較,找到合適的位置。依次類推。

    1,按一定的間隔對數(shù)組進行分組,一般以數(shù)組長度一半 gap = length / 2 (ps:也可以是3,4,無強性要求)

    (假如:數(shù)組長度為10的話gap = 10 / 2 = 5,也就是,位置0和5為一組,位置1和6位一組...,組里的值進行插入排序)

    2,以gap的一半進行縮小 gap = gap / 2

    (此時:gap = Math.floor(5 / 2) = 2 向下取整,也就是,位置0和位置2為一組,位置1和3為一組..,組里的值進行插入排序)

    3,當gap === 1時,此時所有元素為一組,此時運行的就是我們一般的插入排序了。

    這樣處理的好處是:希爾排序的優(yōu)化使得原本 O(n^2) 的時間復雜度一下降為 O(nlogn)

    采用分治思想

    1,先把數(shù)組從中間分開,

    [5, 4, 8, 2, 1, 9, 7, 3, 6, 0]

    [5, 4, 8, 2, 1] [9, 7, 3, 6, 0]

    [5, 4, 8] [2, 1] [9, 7, 3] [6, 0]

    [5, 4] [8] [2] [1] [9, 7] [3] [6] [0]

    [5] [4] [9] [7]

    2,分別比較合并

    [4, 5]

    [4, 5, 8] [1, 2]

    [1, 2, 4, 5, 8]

    ...

    1,構建堆,堆頂是最大的元素(子結點的鍵值或索引總是小于(或者大于)它的父節(jié)點)

    2,把最大的元素交換到堆頂,然后把堆頂跟交換到數(shù)組后面,數(shù)組減1,依次重復。

    采用分治思想(ps:把數(shù)組分成若干小份,排好每小份,在拼接起來)

    1, 定義一個桶的大?。ㄒ粋€桶能裝下幾個值)

    2,根據(jù)數(shù)組的長度,計算需要幾個桶,每個桶都是小的數(shù)組,組成二維數(shù)組

    3,往桶里放數(shù)據(jù)

    4,每個桶的數(shù)組使用插入排序

    5,把每個桶的數(shù)據(jù)拼接起來

    1,找出最大和最小元素。

    2,統(tǒng)計每個元素出現(xiàn)的次數(shù),以元素的值為索引,次數(shù)為value。

    3,對所有計數(shù)開始累加,從min開始,每一項和前一項相加(加起來最后一個的值是數(shù)組的長度,用于下一步值的填充)

    4,反向填充目標數(shù)組,將每個元素i放在新數(shù)組的第C[i]項,每放一個元素,計數(shù)-1

    適用,例如當你的數(shù)很大,如手機號碼,的排序

    1, 先按排序個位數(shù),以各位的值為key, 這個的值為value, 進行按各位的排序

    2,排好個位數(shù)后,用排好的數(shù)組在按十位數(shù)排,以十位數(shù)的值為key, 這個值為value, 進行按十位的排序,依次類推

    二、常見排序算法有哪些

    常用的排序算法有:冒泡排序、選擇排序、堆排序、SHELL排序、快速排序、歸并排序、磁盤排序等等。但是每種排序算法都是各有優(yōu)缺點。如果需要進一步研究各種算法的性能的話,那么就必須學習計算機算法和復雜性這門課程。

    三、常用的排序算法都有哪些?

    排序算法 所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作。

    分類

    在計算機科學所使用的排序算法通常被分類為:

    計算的復雜度(最差、平均、和最好表現(xiàn)),依據(jù)串列(list)的大?。╪)。一般而言,好的表現(xiàn)是O。(n log n),且壞的行為是Ω(n2)。對於一個排序理想的表現(xiàn)是O(n)。僅使用一個抽象關鍵比較運算的排序算法總平均上總是至少需要Ω(n log n)。

    記憶體使用量(以及其他電腦資源的使用)

    穩(wěn)定度:穩(wěn)定排序算法會依照相等的關鍵(換言之就是值)維持紀錄的相對次序。也就是一個排序算法是穩(wěn)定的,就是當有兩個有相等關鍵的紀錄R和S,且在原本的串列中R出現(xiàn)在S之前,在排序過的串列中R也將會是在S之前。

    一般的方法:插入、交換、選擇、合并等等。交換排序包含冒泡排序(bubble sort)和快速排序(quicksort)。選擇排序包含shaker排序和堆排序(heapsort)。

    當相等的元素是無法分辨的,比如像是整數(shù),穩(wěn)定度并不是一個問題。然而,假設以下的數(shù)對將要以他們的第一個數(shù)字來排序。

    (4, 1) (3, 1) (3, 7) (5, 6)

    在這個狀況下,有可能產(chǎn)生兩種不同的結果,一個是依照相等的鍵值維持相對的次序,而另外一個則沒有:

    (3, 1) (3, 7) (4, 1) (5, 6) (維持次序)

    (3, 7) (3, 1) (4, 1) (5, 6) (次序被改變)

    不穩(wěn)定排序算法可能會在相等的鍵值中改變紀錄的相對次序,但是穩(wěn)定排序算法從來不會如此。不穩(wěn)定排序算法可以被特別地時作為穩(wěn)定。作這件事情的一個方式是人工擴充鍵值的比較,如此在其他方面相同鍵值的兩個物件間之比較,就會被決定使用在原先資料次序中的條目,當作一個同分決賽。然而,要記住這種次序通常牽涉到額外的空間負擔。

    排列算法列表

    在這個表格中,n是要被排序的紀錄數(shù)量以及k是不同鍵值的數(shù)量。

    穩(wěn)定的

    冒泡排序(bubble sort) — O(n2)

    雞尾酒排序 (Cocktail sort, 雙向的冒泡排序) — O(n2)

    插入排序 (insertion sort)— O(n2)

    桶排序 (bucket sort)— O(n); 需要 O(k) 額外 記憶體

    計數(shù)排序 (counting sort) — O(n+k); 需要 O(n+k) 額外 記憶體

    歸并排序 (merge sort)— O(n log n); 需要 O(n) 額外記憶體

    原地歸并排序 — O(n2)

    二叉樹排序 (Binary tree sort) — O(n log n); 需要 O(n) 額外記憶體

    鴿巢排序 (Pigeonhole sort) — O(n+k); 需要 O(k) 額外記憶體

    基數(shù)排序 (radix sort)— O(n·k); 需要 O(n) 額外記憶體

    Gnome sort — O(n2)

    Library sort — O(n log n) with high probability, 需要 (1+ε)n 額外記憶體

    不穩(wěn)定

    選擇排序 (selection sort)— O(n2)

    希爾排序 (shell sort)— O(n log n) 如果使用最佳的現(xiàn)在版本

    Comb sort — O(n log n)

    堆排序 (heapsort)— O(n log n)

    Smoothsort — O(n log n)

    快速排序 (quicksort)— O(n log n) 期望時間, O(n2) 最壞情況; 對於大的、亂數(shù)串列一般相信是最快的已知排序

    Introsort — O(n log n)

    Patience sorting — O(n log n + k) 最外情況時間, 需要 額外的 O(n + k) 空間, 也需要找到最長的遞增子序列(longest increasing subsequence)

    不實用的排序算法

    Bogo排序 — O(n × n!) 期望時間, 無窮的最壞情況。

    Stupid sort — O(n3); 遞回版本需要 O(n2) 額外記憶體

    Bead sort — O(n) or O(√n), 但需要特別的硬體

    Pancake sorting — O(n), 但需要特別的硬體

    排序的算法

    排序的算法有很多,對空間的要求及其時間效率也不盡相同。下面列出了一些常見的排序算法。這里面插入排序和冒泡排序又被稱作簡單排序,他們對空間的要求不高,但是時間效率卻不穩(wěn)定;而后面三種排序相對于簡單排序對空間的要求稍高一點,但時間效率卻能穩(wěn)定在很高的水平?;鶖?shù)排序是針對關鍵字在一個較小范圍內的排序算法。

    插入排序

    冒泡排序

    選擇排序

    快速排序

    堆排序

    歸并排序

    基數(shù)排序

    希爾排序

    插入排序

    插入排序是這樣實現(xiàn)的:

    首先新建一個空列表,用于保存已排序的有序數(shù)列(我們稱之為"有序列表")。

    從原數(shù)列中取出一個數(shù),將其插入"有序列表"中,使其仍舊保持有序狀態(tài)。

    重復2號步驟,直至原數(shù)列為空。

    插入排序的平均時間復雜度為平方級的,效率不高,但是容易實現(xiàn)。它借助了"逐步擴大成果"的思想,使有序列表的長度逐漸增加,直至其長度等于原列表的長度。

    冒泡排序

    冒泡排序是這樣實現(xiàn)的:

    首先將所有待排序的數(shù)字放入工作列表中。

    從列表的第一個數(shù)字到倒數(shù)第二個數(shù)字,逐個檢查:若某一位上的數(shù)字大于他的下一位,則將它與它的下一位交換。

    重復2號步驟,直至再也不能交換。

    冒泡排序的平均時間復雜度與插入排序相同,也是平方級的,但也是非常容易實現(xiàn)的算法。

    選擇排序

    選擇排序是這樣實現(xiàn)的:

    設數(shù)組內存放了n個待排數(shù)字,數(shù)組下標從1開始,到n結束。

    i=1

    從數(shù)組的第i個元素開始到第n個元素,尋找最小的元素。

    將上一步找到的最小元素和第i位元素交換。

    如果i=n-1算法結束,否則回到第3步

    選擇排序的平均時間復雜度也是O(n²)的。

    快速排序

    現(xiàn)在開始,我們要接觸高效排序算法了。實踐證明,快速排序是所有排序算法中最高效的一種。它采用了分治的思想:先保證列表的前半部分都小于后半部分,然后分別對前半部分和后半部分排序,這樣整個列表就有序了。這是一種先進的思想,也是它高效的原因。因為在排序算法中,算法的高效與否與列表中數(shù)字間的比較次數(shù)有直接的關系,而"保證列表的前半部分都小于后半部分"就使得前半部分的任何一個數(shù)從此以后都不再跟后半部分的數(shù)進行比較了,大大減少了數(shù)字間不必要的比較。但查找數(shù)據(jù)得另當別論了。

    堆排序

    堆排序與前面的算法都不同,它是這樣的:

    首先新建一個空列表,作用與插入排序中的"有序列表"相同。

    找到數(shù)列中最大的數(shù)字,將其加在"有序列表"的末尾,并將其從原數(shù)列中刪除。

    重復2號步驟,直至原數(shù)列為空。

    堆排序的平均時間復雜度為nlogn,效率高(因為有堆這種數(shù)據(jù)結構以及它奇妙的特征,使得"找到數(shù)列中最大的數(shù)字"這樣的操作只需要O(1)的時間復雜度,維護需要logn的時間復雜度),但是實現(xiàn)相對復雜(可以說是這里7種算法中比較難實現(xiàn)的)。

    看起來似乎堆排序與插入排序有些相像,但他們其實是本質不同的算法。至少,他們的時間復雜度差了一個數(shù)量級,一個是平方級的,一個是對數(shù)級的。

    平均時間復雜度

    插入排序 O(n2)

    冒泡排序 O(n2)

    選擇排序 O(n2)

    快速排序 O(n log n)

    堆排序 O(n log n)

    歸并排序 O(n log n)

    基數(shù)排序 O(n)

    希爾排序 O(n1.25)

    冒泡排序

    654

    比如說這個,我想讓它從小到大排序,怎么做呢?

    第一步:6跟5比,發(fā)現(xiàn)比它大,則交換。564

    第二步:5跟4比,發(fā)現(xiàn)比它大,則交換。465

    第三步:6跟5比,發(fā)現(xiàn)比它大,則交換。456

    四、請問 排序算法 可以分為哪幾大類?

    排序可分為:

    1,穩(wěn)定排序與不穩(wěn)定排序

    2,內排序和外排序

    內部排序可分為:直接插入排序、冒泡排序、簡單選擇排序、希爾排序、快速排序、堆排序、歸并排序、基數(shù)排序。

    以上就是關于網(wǎng)頁排序算法有哪些相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。


    推薦閱讀:

    廣告設計網(wǎng)(廣告設計網(wǎng)頁)

    免費留電話號碼的廣告(永久免費轟炸電話網(wǎng)頁版)

    網(wǎng)頁點擊量統(tǒng)計(網(wǎng)頁點擊量統(tǒng)計截圖)

    做一個好銷售八個標準(做一個好銷售八個標準內容)

    抖音數(shù)據(jù)羅盤在哪里打開(抖音羅盤數(shù)據(jù)分析)