65得票7回答
基数排序、计数排序和桶排序。它们有什么区别?

我正在阅读基数排序、计数排序和桶排序的定义,似乎它们都只是下面的代码:public static void sort(int[] a, int maxVal){ int [] bucket=new int[maxVal+1]; for (int i=0; i<bucke...

7得票1回答
计数排序:为什么我们需要前面计数的总和?

我正在阅读关于计数排序的内容,算法的一个步骤是:。 for(i = 1 to k) c[i] = c[i]+c[i-1]; 为什么我们需要这一步骤? 为什么不能使用这个代替呢? for(i = 0 to k) while(c[i]--) Output ...

7得票3回答
使用时间复杂度为O(n + k*log(k))的算法对整数进行排序

设计一种算法,对包含重复元素的n个整数进行排序,其中不同数字的总数为k。你的算法应该在O(n + k*log(k))的时间复杂度内运行。期望的运行时间足够快。对于哪些值的k,这个算法变成线性? 我无法想出一个符合条件必须是O(n + k*log(k))的整数排序算法。我不是一个很高级的程序员...