基數排序 RadixSortC語言

2021-07-23 17:29:10 字數 1075 閱讀 9989

#include

#include

#include

int getmax(int arr, int n);

void countsort(int arr, int n, int exp);

void countsort(int arr, int n, int exp);

void radix_sort(int arr, int n);

void print(int arr, int n);

int * buildarray(void);

#define arraysize 2000000

int main()

// 獲取 arr中的最大數

int getmax(int arr, int n)

// 據exp所代表的位

// 使用低位計數排序

void countsort(int arr, int n, int exp) ;

// 將相應位的數字記錄在count陣列中

for (i = 0; i < n; i++)

count[ (arr[i]/exp)%10 ]++;

// count[i]實際上表示

//  各個數在output所在的位置

for (i = 1; i < 10; i++)

count[i] += count[i - 1];

// 建立輸出陣列

for (i = n - 1; i >= 0; i--)

// 複製output到arr中, 因此 arr 中

// 實際上按目前位排序後的結果

for (i = 0; i < n; i++)

arr[i] = output[i]; }

// main() 函式裡面用到的radix_sort()函式

void radix_sort(int arr, int n)

// 列印陣列

void print(int arr, int n)

putchar('\n'); }

//建立陣列

int * buildarray(void)

排序 基數排序

基數排序 radix sort 是屬於 分配式排序 distribution sort 基數排序法又稱 桶子法 bucket sort 或bin sort,顧名思義,它是透過鍵值的部份資訊,將要排序的元素分配至某些 桶 中,藉以達到排序的作用。排序思想 首先按照資料的最低位 個位 將資料分配到0 9...

排序 基數排序

1 基數排序 桶排序 介紹 1 基數排序 radix sort 屬於 分配式排序 distribution sort 又稱 桶子法 bucket sort 或bin sort,顧名思義,它是通過鍵值的各個位的值,將要排序的元素分配至某些 桶 中,達到排序的作用 2 基數排序法是屬於穩定性的排序,基數...

桶排序 基數排序 計數基數排序 Java

前面已經講述了很多排序演算法,但是他們的排序演算法都是基於兩個值之間的比較,通過決策樹的方法可以證明深度為d的二叉樹則最多有 一些好的排序演算法是可以達到時間複雜度是線性的,桶排序就是其中一種。比如有n個數,但是這些數的最大數不超過m。這個時候就可以定義乙個含有m個元素的陣列 初始值為0 然後遍歷n...