Algorithm 确定给定数组中负数的快速算法

Algorithm 确定给定数组中负数的快速算法,algorithm,Algorithm,如果给定数组中只有一个负数,请建议是否有更快的方法查找负数。我认为排序是一种选择,但如果有更快的方法,它会很有帮助。只需遍历数组即可。这就是顺序。排序的最佳顺序为n(对数n);最坏的情况下,n2可能最快的方法是扫描阵列,直到找到它 如果只执行一次,并且不需要为其他目的对数组进行排序,则扫描负数比进行排序更快。但是,如果您需要(或可以将)排序用于其他目的,或者可能需要多次查找负数,那么排序最终可以节省时间。同样,对于某些程序,在真正关键的时候,花额外的时间准备获得更快的响应是合理的(但我不知道这是

如果给定数组中只有一个负数,请建议是否有更快的方法查找负数。我认为排序是一种选择,但如果有更快的方法,它会很有帮助。

只需遍历数组即可。这就是顺序。排序的最佳顺序为n(对数n);最坏的情况下,n2

可能最快的方法是扫描阵列,直到找到它


如果只执行一次,并且不需要为其他目的对数组进行排序,则扫描负数比进行排序更快。但是,如果您需要(或可以将)排序用于其他目的,或者可能需要多次查找负数,那么排序最终可以节省时间。同样,对于某些程序,在真正关键的时候,花额外的时间准备获得更快的响应是合理的(但我不知道这是否适用于这里)。

排序不会比遍历数组的所有元素更快(因为要排序,您也必须这样做)


最快的方法是遍历all数组,并在检测到一个负数时停止

在遍历数组并检查一个(!)负数时,比O(n)更快?没有任何关于数组的知识(例如数组us排序)-没有。非常确定您可以只搜索数组。那是O(n)。排序?为何只需扫描数组,就不能低于O(n)。您使用的是哪种语言?数组中的数据类型是什么?阵列是用连续内存块建模的吗?“最坏”可能比N^2糟糕得多(尽管真正糟糕的选项大多是笑话,从未打算用于严肃用途)。@Jerry Coffin;是的,我曾经考虑过——我曾经在生产代码中看到了一个N^ 3排序。哦,OUCH——Knuth在TAOCP中给出了一个O(n ^ 3),但只作为最短的可能的排序代码(在Mixar中)。最好的情况是O(n),最坏的情况是无界的。平均:O(n*n!)。