将数组从特定索引排序到特定索引

时间:2017-05-09 05:39:39

标签: ios arrays swift

专家。 如何将数组从特定索引排序到特定索引,而不是完整数组排序。我正在寻找很多,但没有找到任何解决方案,所以请告诉我如何做到这一点。

3 个答案:

答案 0 :(得分:5)

您可以直接在阵列片上调用sort()

var array = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
array[2...7].sort()

print(array)
// [9, 8, 2, 3, 4, 5, 6, 7, 1, 0]

答案 1 :(得分:3)

最简单的方法是从数组中提取特定范围,然后用排序数组替换该特定范围。

<强>实施例

var array = [1,50,42,15,3,25,63,7,26,8,10,36,78,12]
let sliceSortedArray = array[5...10].sorted()
array.removeSubrange(5...10)
array.insert(contentsOf: sliceSortedArray, at: 5)
print(sliceSortedArray) // [7, 8, 10, 25, 26, 63]
print(array) // [1, 50, 42, 15, 3, 7, 8, 10, 25, 26, 63, 36, 78, 12]

修改由于@Martin R建议您也可以使用replaceSubrange(_:with:)

array.replaceSubrange(5...10, with: array[5...10].sorted())

答案 2 :(得分:0)

您可以使用SELECT id, min(amount) as amount FROM table t group by id having min(amount) > 0; filter的组合,它将返回带有已排序元素的新数组。

的内容
sort