基數排序(c )

2021-10-09 22:55:21 字數 1164 閱讀 6751

題目描述:

根據輸入,輸出基數排序的每趟排序結果。

輸入格式:輸入數字為正整數,先輸入排序數字個數,然後輸入需要排序的數字序列。

輸出:每趟排序結果。

要求:程式需要實現排序,其他可以使用stl包。

示例測試集:

輸入:8

2343666

152310

5594

592783278

輸出:152310 2343 592783 5594 6 66 27 8

6 8 152310 27 2343 66 592783 5594

6 8 27 66 152310 2343 5594 592783

6 8 27 66 152310 2343 592783 5594

6 8 27 66 2343 5594 152310 592783

6 8 27 66 2343 5594 152310 592783

#include 

using namespace std;

//輸出陣列

void

print

(int data[

],int n)

cout<}//求出陣列中數字的最大位數,以判斷要排序幾次

int maxbit

(int data[

],int n)

}return num;

}//基數排序

void

radixsort

(int data[

],int n)

for(int a=

0;a)for

(int i=

1;i<

10;i++

)for

(int q=n-

1;q>=

0;q--

)for

(int i=

0;i)print

(data,n)

; radix*=10;

}}int main()

radixsort

(data,n)

;return0;

}

將所有桶中記錄依次收集到tmp中那步為啥要從最後乙個元素開始啊??為什麼啊為什麼啊?

參考鏈結

基數排序 C

首先我們引入乙個多關鍵排序的概念 多關鍵字排序 假如現在有乙個員工表,要求按照薪資排序,年鈴相同的員工按照年齡排序。比如氣泡排序就是一種穩定排序,堆排序就是不穩定的排序,品,你細細的品 那麼對32,13,94,52,17,54,93排序,是否可以看做多關鍵字排序?比如32 13 52排序,先看個位2...

c 基數排序

題目和我的前幾個排序一樣 include using namespace std int arrlength int arr 測出int陣列的長度 遞迴,找出陣列最大的值 param arrays 陣列 param l 左邊界,第乙個數 param r 右邊界,陣列的長度 return int fi...

排序 基數排序 C

2.執行結果 3.演算法實現 1.基數排序是在箱排序的基礎之上進行擴充套件和完善的 2.通過判斷待排序的陣列中的位數,決定進行建立箱子的個數和遍歷的次數.例如 待排序中最多的位數為3位,那麼就需要建立三個箱子 當然也可以建立兩個,進行復用,記得復用之前要清除之前的箱子 這裡我就不復用了.那麼需要進行...