桶排序:数组里面可以有重复的数字或者字符,但是会占用大量空间。
位排序:数组里面不能有重复的数字或者字符,占用空间小。
下面分别用代码说明:
桶排序
#include <iostream>
void StackSort(int* array, int size)
{
int max_num = 0;
for(int i = 0; i < size; ++i)
{
if(array[i] > max_num)
{
max_num = array[i];
}
}
char* p = new char[max_num + 1];
for(int i = 0; i <= max_num; ++i)
{
p[i] = 0;
}
for(int i = 0; i < size; ++i)
{
p[array[i]] += 1;
}
for(int i = 0; i <= max_num; ++i)
{
for(char j = 0; j < p[i]; ++j)
{
std::cout << i << " - ";
}
}
std::cout << std::endl;
}
int main(int argc, char *argv[])
{
int* array = new int[10];
for(int i = 0; i < 10; i++)
{
array[i] =