<分区>
我正在编写一个算法来查找数组中的最小数字,但是我的打印语句一直说最小数字是 0。我有以下内容:
var list = [5, 4, 3, 5, 2, 50, 8, 10, 300]
func findMin(numbers: NSArray) {
var minValue = numbers[0]
var isSmallest: Bool
for i in 0...numbers.count {
isSmallest = true
for j in 0...numbers.count {
if i > j {
isSmallest = false
}
}
if isSmallest {
minValue = i
}
}
print("Smallest value in the list is \(minValue)")
}
findMin(numbers: list as NSArray)
我的打印语句返回为:
"Smallest value in the list is 0\n"
我觉得算法是正确的。有什么想法吗?
编辑:回答了我自己的问题
我正在迭代索引而不是实际值。感谢评论中的一位用户。正确的代码应该是:
var list = [5, 4, 3, 5, 2, 50, 8, 10, 300]
func findMin(numbers: NSArray) {
var minValue = numbers[0]
var isSmallest: Bool
for i in list {
isSmallest = true
for j in list {
if i > j {
isSmallest = false
}
}
if isSmallest {
minValue = i
}
}
print("Smallest value in the list is \(minValue)")
}
findMin(numbers: list as NSArray)