睡眠排序的时间复杂度是多少?
|
给定这种排序算法,您如何表达其时间复杂度?
最初显示在这里(部分存档)。
#!/bin/bash
function f() {
sleep \"$1\"
echo \"$1\"
}
while [ -n \"$1\" ]
do
f \"$1\" &
shift
done
wait
example usage:
./sleepsort.bash 5 3 6 3 6 3 1 4 7
没有找到相关结果
已邀请:
7 个回复
锑寝粒
由于大多数排序算法都无法识别数据,因此很难表达这种复杂性。它们的时间取决于数据量,而不是数据本身。 如此处指出的那样,FWIW不是用于排序数据的可靠算法。
桑娠贯涤
磐去裸猜饲
阀傻
: 在数据集中具有足够大的值的情况下,您将一直等待答案,直到太阳爆炸(264秒才是半个万亿年之久)。 如果数据集大小足够大,您将(a)达到流程限制; (b)发现早睡会在后者开始之前完成,这意味着set5ѭ不会正确地对sort6ѭ和
进行排序。 在这种情况下,时间复杂度无关紧要。您无法获得比“错误”更小的优化。可以使用复杂度分析来比较算法,以随着数据集大小的变化而进行比较,但是当算法最初是荒唐的时候就不行了:-)
弦砂牧扁
(对于某个适当的常数k),然后让线程休眠直到时间
。然后
显然是O(n),
显然是O(2 ^ m),总共是O(2 ^ m + n)。
吠强祷豪硅
,操作复杂度(操作数)为
。
磨标烫徽啪