在同一阵列上重复找到最小值

时间:2014-03-18 17:34:44

标签: c arrays minimum

我试图在不使用任何其他数据结构的情况下重复找到未排序数组的最小值。此数组是从磁盘上的文件加载的输入缓冲区。找到第二个最小值时,如何确保它不会重新考虑已经选择的第一个最小值。同样,在找到第3个最小值时,不应考虑第1和第2分钟,等等。

我无法将最小值设置为某个值,如-1,因为-1可能是输入整数。

2 个答案:

答案 0 :(得分:2)

您可以将最小值与数组中的最后一项交换,然后在下次搜索时考虑少一个元素。

或者只是对整个数组进行排序,如@mah在评论中提到的那样。

哪一个更有效取决于您需要获取的元素数量是<> LG(N)

答案 1 :(得分:0)

您应该保存变量中第一个最小值的索引,并重新计算除第一个最小值的索引之外的所有数组元素的第二个最小值。