我目前正在测试根据键值对列表进行排序的最佳算法。
我有一个非常简单的对象(以下代码片段来自C#)
class BasicObject
{
int Key;
}
密钥是在构造对象时随机设置的。
所以我有一个BasicObject对象列表,最后需要按键值排序。
List<BasicObject> basicList = new List<BasicObject>();
for (int i = 0; i < someAmount; i++)
{
basicList.Add(new BasicObject());
}
我的想法是,创建一个名为orderedList的新列
我是python的新手,正在构建一个“只是为了好玩”的排序器。我很好奇,决定给它计时,并将其与list.sort()进行比较。对于一个包含10,000个数字的随机列表,我的程序需要50-70秒。list.sort()需要0.015秒。搜索只返回list.sort()的结果而不是排序的结果list.sort()怎么会这么高效呢?程序是这样的:
import time
import random
ct=0
while ct<5:
List=[]
count =0
while count< 10000:#builds a random list
假设我有一个bucket的未排序列表。(每个桶都有一个size属性。)假设我有一个数量Q,必须尽可能均匀地分布在桶的列表中(即最小化最大值)。
如果水桶是按增大的大小排序的,那么解决方案是显而易见的:完全填充每个桶,比如buckets[i],直到Q/(buckets.length-i) <= buckets[i]->size,然后用相同数量的Q/(buckets.length-i)填充剩余的桶,如图中所示:
,如果桶没有排序的话,最有效的解决方法是什么?
我只能想到这样的迭代(伪代码):
while Q > 0
for i in 0..buckets.len