【发布时间】:2012-10-05 04:14:52
【问题描述】:
我对 java 有点陌生。我已经看到了按升序/降序对数字进行排序的算法,其中第一个条目是最小/最大的。我从未见过可以将元素排序到最接近的值保持第一个条目不变的算法。
例如: 数组= 53, 98, 183, 37, 122, 14, 124, 65, 67
并返回:
数组= 53, 65, 67, 37, 14, 98, 122, 124, 183
只是为了更好地解释示例,请注意在输出中,第一个条目53 未更改。下一个条目是65,它是所有剩余条目中最接近的,最小差异为12。在65之后,它的67在其余条目(不包括53和65)之间有2的差异。同理,下一个条目是37,在其余条目中最接近67。
感谢您的帮助!!!
【问题讨论】:
-
您的要求不明确。起初我以为你是按差异排序的,但事实并非如此。你能更清楚地解释想要的结果吗?在这种情况下,“更接近”是什么意思?
-
您是从数组中的第一个元素开始还是从数组中的最大元素开始?如果您从数组中的最大值开始,则按降序排序。
-
我认为他从第一个开始...53大于37。他(我认为)询问如何按升序对所有数字进行排序...等等...“67更接近37" ???
-
啊,我想我现在明白了。第一个元素被锚定并保持在数组 [0] 中。对于 n>0,您选择 x 处的元素,使得 abs(a[x]-a[n-1]) 最小,然后重复直到您选择了所有元素。
-
标准问题:你尝试过什么?并且:这可能属于Software Engineering,因为它更多的是算法问题而不是编码问题。
标签: java arrays sorting numbers closest