#include "stdafx.h"
#include #include using namespace std;
#define radix 3
#define length 7
int a[length] = ;
// copy a into b
void copyarray(int* a, int* b)
}void printarray(int* a)
cout << endl;
}//返回整型a的第i位數
//getdigiti(790,3) = 7
//getdigiti(790,2) = 9
//getdigiti(790, 1) = 0
int getdigiti(int a, int i)
//計數排序
void countingsort(int* a, int i)
; //存本次的排序結果
int c[10] = ; //用於統計的輔助陣列
//統計第i位上的值出現次數
for (int k = 0; k < length; ++k)
//累加
for (int k = 1; k < 10; ++k)
//根據累加陣列c,對a進行排序,結果在b中
for (int k = length-1; k >= 0; --k)
copyarray(b,a);
}//基數排序
void radixsort()
}int _tmain(int argc, _tchar* argv)
計數排序 基數排序
一.計數排序 counting sort 基本思想 對每乙個輸入元素x,確定出小於x的元素個數。適用範圍 適用於輸入是由小範圍的整數構成的序列。穩定性 演算法是穩定的。具體實現 include using namespace std arr 初始輸入陣列,res 存放排序結果的陣列,hash臨時儲存...
桶排序 基數排序 計數基數排序 Java
前面已經講述了很多排序演算法,但是他們的排序演算法都是基於兩個值之間的比較,通過決策樹的方法可以證明深度為d的二叉樹則最多有 一些好的排序演算法是可以達到時間複雜度是線性的,桶排序就是其中一種。比如有n個數,但是這些數的最大數不超過m。這個時候就可以定義乙個含有m個元素的陣列 初始值為0 然後遍歷n...
計數排序和基數排序
計數排序和基數排序是屬於線性級時間複雜度的排序方式,雖然沒有冒泡,選擇,快排演算法那些讓人廣為所知,但是這兩種排序方式在某些場合非常適用。計數排序是基數排序的基礎,最為關鍵的是 基數排序演算法是字尾陣列的關鍵 當然字尾陣列也可以用快排 字尾陣列是用於處理字串的一種非常優秀的資料結構,可以高效的處理很...