排序演算法之基數排序

2021-08-25 14:37:40 字數 639 閱讀 6134

基於排序是一種很特別的排序方法,它採用多關鍵字排序思想(即基於關鍵字各位的大小進行排序),借助

「分配」和「收集」兩種操作對單邏輯關鍵字進行排序。基數排序又分為最高位優先(msd)和最低位優先(lsd)

排序。

基數排序:

public void sort(int array)

// 建立乙個二維陣列

listqueue = new arraylist<>(); // 多維陣列

for (int i=0; i<10; i++)

for (int i=0; i0)

}system.out.println("第"+(i+1)+"次收集的結果:"+arrays.tostring(array));

} }

空間效率:一趟排序需要的輔助儲存空間為r(r個佇列),但以後的排序中重複使用這些佇列,所以基數排序的

空間複雜度為o(r)。

時間效率:基數排序需要進行d趟分配和收集,一趟分配需要o(n),一趟收集需要o(r),所以時間複雜度為

o(d(n+r)),它與序列的初始狀態無關。

穩定性:基數排序演算法按位排序時必須是穩定的,這保證了基數排序時的穩定性。

演算法 排序之基數排序

基數排序也是穩定的內排序。因為它的實現是基於內部使用了穩定的排序實現的所以基數排序整體是穩定的,而且時間複雜度為o n 舉個例子 現在我們將一些3 多 位數排序,如果你說直接判斷就好的話,那你就太天真了,因為那就又變成看o nlgn 或者o n 如何能降低時間複雜度變成o n 呢?那就要使用線性時間...

排序演算法之基數排序

首先從多排序碼排序開始介紹基數排序。以撲克牌排序為例。每張撲克牌有兩個 排序碼 花色和面值。其有序關係為 如果把所有撲克牌排成以下次序 2,a,2,a,2,a,2,a 這就是多排序碼排序。排序後形成的有序序列叫做字典有序序列。一般情況下,假定有乙個n個元素的序列 v 0,v1 vn 1 且每個元素v...

排序演算法之基數排序

如果我們要排序的資料具有多個關鍵字域,那就可以採用基數排序的方法了。基數排序的主要思想是 假如參加排序的元素最高具有d位,有的數沒有d位那麼多,則在其欠缺的高位補0,將元素先按最低位 設最右邊的位為最低位 的值進行排序,然後按次低位進行排序.最後進行最高位的排序。基數排序如果想達到理想的目的,必須滿...