int型資料的位數有限,那麼我們可以考慮如下思想進行排序。
因為int型資料最多有10位,那麼我們需要10次迴圈,每次列舉乙個位置。
把當前位置,根據值的不同,分別丟進10個桶。
從最低位一直到最高位,那麼我們就可以的到乙個有序的陣列。
時間複雜度 10*n;
#include
#include
#include
#include
#include
using
namespace
std;
#define ll long long int
#define inf 0x3f3f3f3f
const
int maxn = 1e5 + 10;
int a[maxn], b[20];
//int vis[maxn];
int backet[10][maxn];
int vis[10];//桶的上限
int main()
int n;
while (~scanf("%d", &n) && n)
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)}}
for (int i = 0; i < n; i++)
cout
<< endl;
}return
0;}
演算法 排序之桶排序詳解
桶排序是排序中的乙個重要的方法,原理就是定義乙個陣列,初始化成為全0 遇到乙個數字,就在這個範圍內找到這個數字並把這個數字下面的數字變為1 在遇到就再加上1 最後遍歷一遍,如果為幾就表示這個數字出現幾次,沒有就表示這個數字沒有出現 的實現 如果需要對資料範圍在 0 1000 之間的整數進行排序,我們...
排序 桶排序
首先,桶排序是一種簡單並且執行快的一種排序。第一步,對五個數進行排序。程式如下 include using namespace std int main 首先對陣列進行歸零 for int j 1 j 5 j 將輸入的數的個數存入陣列中。for int k 1 k 10 k 執行原理 桶排序,就是先...
排序演算法 桶排序
桶排序 bucket sort 或所謂的箱排序,是乙個排序演算法,工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 桶排序是鴿巢排序的一種歸納結果。當要被排序的陣列內的數值是均勻分配的時候,桶排序使用線性時間 n 但桶排序並不...