我对Swift很陌生,我想知道我应该如何修改中包含的Int
?我让它像我在Java中那样做,但它显然不起作用:我得到一个Cannot assign to immutable value of type 'Int'
编译错误。Swift修改Int数组的InsertionSort算法
这里是我的代码:
import Foundation
func createRandomArray(length: Int) -> [Int]{
var random = [Int]()
for index in 0...length{
random.append(Int(arc4random_uniform(100)))
}
return random
}
func insertionSort(toSort: [Int]) -> [Int]{
var length = toSort.count
for index in 1...length-1{
var key = toSort[index]
var previous = index-1
while(previous>0 && toSort[previous]>key){
// ERROR IS THERE
toSort[previous+1] = toSort[previous]
previous--
}
}
return toSort
}
var array = createRandomArray(10)
print(array)
print(insertionSort(array))
我认为使用的var
代替let
会给可变对象所以这就是为什么我有点失落。
感谢您的帮助
编辑:
我得到这个工作的答案,由于@vacawama:
import Foundation
func createRandomArray(length: Int) -> [Int]{
var random = [Int]()
for index in 0...length{
random.append(Int(arc4random_uniform(100)))
}
return random
}
func insertionSort(var toSort: [Int]) -> [Int]{
for firstIterator in 1...toSort.count-1{
var currentValue = toSort[firstIterator]
var previousPosition = firstIterator-1
while(previousPosition>=0 && toSort[previousPosition]>currentValue){
swap(&toSort[previousPosition+1], &toSort[previousPosition])
previousPosition--
}
}
return toSort
}
var array = createRandomArray(10)
print(array)
print(insertionSort(array))
非常酷!它像一个魅力! –