亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

web開發中計數排序的示例分析

發布時間:2022-01-17 11:16:30 來源:億速云 閱讀:114 作者:小新 欄目:大數據

這篇文章將為大家詳細講解有關web開發中計數排序的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

計數排序

計數排序是一種非基于比較的排序算法,其空間復雜度和時間復雜度均為O(n+k),其中k是整數的范圍。基于比較的排序算法時間復雜度最小是O(nlogn)的。該算法于1954年由 Harold H. Seward 提出。

計數排序的核心在于將輸入的數據值轉化為鍵存儲在額外開辟的數組空間中。作為一種線性時間復雜度的排序,計數排序要求輸入的數據必須是有確定范圍的整數

算法步驟

  1. 花O(n)的時間掃描一下整個序列 A,獲取最小值 min 和最大值 max

  2. 開辟一塊新的空間創建新的數組 B,長度為 ( max - min + 1)

  3. 數組 B 中 index 的元素記錄的值是 A 中某元素出現的次數

  4. 最后輸出目標整數序列,具體的邏輯是遍歷數組 B,輸出相應元素以及對應的個數

算法演示

web開發中計數排序的示例分析

排序動畫過程解釋

  1. 首先,掃描一下整個序列

  2. 獲得最小值為 2 ,最大值為 7

  3. 新建數組包含 2~7 的元素

  4. 再次掃描序列,將序列的值放置在新建數組中

  5. 掃描數字 5,數組中 index 為 3 的值為 5,次數為 1

  6. 掃描數字 3,數組中 index 為 1 的值為 3,次數為 1

  7. 掃描數字 4,數組中 index 為 2 的值為 4,次數為 1

  8. 掃描數字 7,數組中 index 為 5 的值為 7,次數為 1

  9. 掃描數字 2,數組中 index 為 0 的值為 2,次數為 1

  10. 掃描數字 4,數組中 index 為 2 的值為 4,次數為 2

  11. 掃描數字 3,數組中 index 為 1 的值為 3,次數為 2

  12. 按照這種節奏,掃描結束后,新建數組中存放了整個序列以及每個數字出現的次數

  13. 最后輸出目標整數序列

  14. 輸出數字 2,同時數組中 index 為 0 的值為 2 的元素次數變為 0

  15. 輸出數字 3,同時數組中 index 為 1 的值為 3 的元素次數變為 1

  16. 同樣的操作,整個序列就完全輸出了

代碼實現

為了更好的讓讀者用自己熟悉的編程語言來理解動畫,筆者將貼出多種編程語言的參考代碼,代碼全部來源于網上。

Go代碼實現

web開發中計數排序的示例分析

Java代碼實現

web開發中計數排序的示例分析

Python代碼實現

web開發中計數排序的示例分析

JavaScript代碼實現

web開發中計數排序的示例分析


關于“web開發中計數排序的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

web
AI

玛沁县| 黑水县| 恭城| 岱山县| 天津市| 张家川| 通化县| 浑源县| 绍兴市| 健康| 祥云县| 综艺| 新安县| 江孜县| 枣阳市| 马边| 长子县| 石家庄市| 正安县| 阆中市| 济阳县| 安阳市| 神池县| 赤城县| 西充县| 九江县| 中西区| 九龙县| 雅安市| 阜宁县| 焉耆| 科技| 太和县| 清镇市| 游戏| 永兴县| 卓资县| 杨浦区| 新沂市| 松阳县| 榆林市|