演算法 排序演算法整理 計數排序

2021-10-09 10:59:21 字數 803 閱讀 9292

在氣泡排序,選擇排序,快速排序等比較型排序演算法中,我們最快只能做到o(nlogn)的時間複雜度。而計數排序的時間複雜度是線性的,但是計數排序需要很多額外的空間。

計數排序的主要步驟是:

(1)找出待排序陣列中最大和最小的數

(2)根據最大和最小的數的值建立乙個陣列,用來記錄陣列中每乙個數的數量,陣列的大小是max-min+1

(3)根據記錄陣列中的值和陣列的下標,將數再填回原陣列中,即可完成排序

由於計數排序需要占用許多額外的記憶體,所以在字串排序等占用記憶體較大的情況下,不適合使用計數排序

}}計數排序在排序n個大小範圍為0到k的數時,時間複雜度為o(n+k)。

演算法 排序 計數排序

計數排序不是基於比較的排序演算法,其核心在於將輸入的資料值轉化為鍵儲存在額外開闢的陣列空間中。作為一種線性時間複雜度的排序,計數排序要求輸入的資料必須是有確定範圍的整數。計數排序 counting sort 是一種穩定的排序演算法。計數排序使用乙個額外的陣列c,其中第i個元素是待排序陣列a中值等於i...

演算法 排序 計數排序

計數排序的核心思想就是將需要排序的陣列的元素轉為下標,在輔助空間陣列 輔助空間陣列的初始都是0 中找到對應元素的下標位置,將該位置的元素 掃瞄下標,將對應不為0的下標記錄賦值給原陣列,然後對應下標元素 圖例分析 具體 includevoid countsort int a,int len int m...

演算法 排序演算法之計數排序

計數排序的核心在於將輸入的資料值轉化為鍵儲存在額外開闢的陣列空間中。作為一種線性時間複雜度的排序,計數排序要求輸入的資料必須是有確定範圍的整數。description 計數排序 author wangjie date 2020 1 8 9 09 phone 123 public class test...