代码中第6行的循环一共循环了m次(m为桶的个数),第9行的代码循环了n次(n为待排序数的个数),第14和15行一共循环了m+n次。所以整个排序算法一共执行了m+n+m+n次。我们用大写字母O来表示时间复杂度,因此该算法的时间复杂度是O(m+n+m+n)即O(2*(m+n))。我们在说时间复杂度时候可以忽略较小的常数...
桶排序代码 /** 桶排序** 参数说明:* a -- 待排序数组* n -- 数组a的长度* max -- 数组a中最大值的范围*/voidbucketSort(inta[],intn,intmax){inti,j;intbuckets[max];// 将buckets中的所有数据都初始化为0。memset(buckets,0,max*sizeof(int));// 1. 计数for(i=0;i<n;i++)buckets[a...
最快最简单的排序算法:桶排序 因为其实真正的桶排序要比这个复杂一些,以后再详细讨论,目前此算法已经能够满足我们的需求了。 这个算法就好比有11个桶,编号从0~10。...代码中第6行的循环一共循环了m次(m为桶的个数),第9行的代码循环了n次(n为待排序数的个数),第14和15行一共循环了m+n次。所以整个排序...
每一个单元在桶排序中都被视为一个"桶"。在排序过程中,逐个遍历数组a,将数组a的值作为"桶数组r"的下标。当a中数据被读取时,就将桶的值加1。例如,读取到数组a[3]=5,则将r[5]的值+1。桶排序代码 bucketSort(a, n, max)函数是对数组a进行桶排序,其中n是数组a的长度,max是数组中最...