我如何交换奇数阵列?

时间:2018-06-06 01:36:42

标签: arrays swift swap

如何更换奇数阵列?每次数组奇数时索引超出范围。如果最后一个数组是奇数,它怎么能有一个检查器,它不会进行交换?

var list = [1,2,3,4,5,6,7,8,9,10,11]

if list.count > 0 {
    for index in 2..<list.count {
        if index % 2 == 0 {
            list.swapAt(index, index + 1)
        }
    }
}

2 个答案:

答案 0 :(得分:1)

直到list.count - 1进行交换,因此它不会超出列表范围。

var list = [1,2,3,4,5,6,7,8,9,10,11]

if list.count > 0 {
    for index in stride(from: 2, to: list.count - 1, by: 2){
         list.swapAt(index,index+1)
    }
}

答案 1 :(得分:0)

想想简单。最大索引为list.count-1,并且要交换的对中的第一个索引必须小于该值。现在只需使用while

var index = 0
while index < list.count-1
{
   list.swapAt(index, index+1) // swap current pair
   index += 2                  // increment by 2 to get to next pair
}