给定一个包含10个成员的数组,其中9个将是整数,如何对索引范围为4到9的元素进行排序?
例如:
输入:[Input vector,2,8,2084,33,49,42,8,21,37]
输出:[33,49,42,8,21,37]
Array.Sort(InputArray,4,6)
生成[21,33,37,42,49,8]
,这是一种逻辑排序。但是,我们需要此范围按升序排列:[8,21,33,37,42,49]
我们怎样才能做到这一点?
答案 0 :(得分:1)
数组中的数据似乎被解释为字符串数据。这可以解释为什么8出现在列表的末尾,而不是在开头(因为字符串“8”确实出现在字符串“21”字典之后)。
要解决此问题,您可以执行以下任一操作:
将要排序的数组部分转换为某种数字类型的数组,例如int。这将涉及一些复制,可能不太理想。
实现一个实现IComparer的类,您可以在其中定义要使用的比较操作。基本上,您应该将两个字符串操作数转换为比较函数为数字,并根据数字比较返回适当的值。这可能就是你想要的。