中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

阳城县| 大渡口区| 鄯善县| 广河县| 宁阳县| 沈丘县| 时尚| 黄冈市| 博爱县| 庆阳市| 咸宁市| 西吉县| 饶河县| 茶陵县| 乐山市| 遵化市| 额尔古纳市| 霍邱县| 牡丹江市| 阳信县| 郎溪县| 漳州市| 台安县| 南京市| 高邑县| 邻水| 岳阳市| 济阳县| 龙江县| 聂拉木县| 射洪县| 天台县| 林芝县| 湘潭市| 玉田县| 固始县| 永和县| 夏邑县| 大石桥市| 五华县| 晋州市|