线性时间排序--桶排
1、桶排序
可以排序的范围数较小,是一种以空间换时间的排序算法;
不考虑重复元素的出现---->桶排;解决方案在计数排序;
(1)、代码实现
#include<stdio.h>voidbucketSort(int*a,intcount);voidshowArray(int*a,intcount);voidshowArray(int*a,intcount){inti;for(i=0;i<count;i++){printf("%d",a[i]);}printf("\n");}voidbucketSort(int*a,intcount){intb[10]={0};//知道要排序值的最大范围inti;intn=0;for(i=0;i<count;i++){b[a[i]]++;}for(i=0;i<10;i++){if(b[i]){a[n++]=i;}}}voidmain(void){inta[]={3,5,1,8,9,6};intcount=sizeof(a)/sizeof(int);bucketSort(a,count);showArray(a,count);}
(2)、结果截图
(3)、算法分析
时间复杂度:O(n);
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。