哈希排序算法(Hash),是目前我认为速度最快的排序算法之一,时间复杂度为O(n),而且我认为很简单。它的主体思路是:定义一个数组,每个元素表示它的下标在数列中的个数,最后用循环完成排序。
例如给你一个上限不超过100的数列,要求你从小到大进行排序。这时我们就可以用哈希排序算法,代码如下。
#include<cstdio>
int a[100];
int main()
{
int n;
scanf("%d",&n);
int i,j,t;
for(i=1;i<=n;i++)
{
scanf("%d",&t);
a[t]++;
}
for(i=0;i<100;i++) for(j=0;j<a[i];j++) printf("%d",i);
}