基數排序 C 實現

2021-10-09 05:09:00 字數 970 閱讀 5775

template_head.h

#include

#include

#include

#include

"../head_file/template_head.h"

using

namespace std;

void

radix_sort()

;int len =

sizeof

(arr)

/sizeof

(arr[0]

);cout <<

"length of arr: "

<< len << endl;

radixsort

(arr, len)

;for

(int i =

0; i < len; i++

) cout << endl;

}void

radixsort

(int arr,

int length)

int len =1;

while

(max_item /=10

) vectorint>

>

buckets(10

);int tmp = len;

while

(tmp--

)// 對每乙個位進行桶排序,從個位開始

buckets[r]

.push_back

(std::

move

(arr[i]))

;// 每個桶裡面可以放多個數

}int idx =0;

for(vector<

int>

& bucket : buckets)

bucket.

clear()

;}// 按照桶排序的順序拿出來,這裡是公升序,降序就反過來拿出來

}}

c 實現基數排序

以下介紹內容 百科 基數排序的方式可以採用lsd least significant digital 或msd most significant digital lsd的排序方式由鍵值的最右邊開始,而msd則相反,由鍵值的最左邊開始。以lsd為例,假設原來有一串數值如下所示 73,22,93,43,...

基數排序 C

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

基數排序(c )

題目描述 根據輸入,輸出基數排序的每趟排序結果。輸入格式 輸入數字為正整數,先輸入排序數字個數,然後輸入需要排序的數字序列。輸出 每趟排序結果。要求 程式需要實現排序,其他可以使用stl包。示例測試集 輸入 8 2343666 152310 5594 592783278 輸出 152310 2343...