数模竞赛答题打卡挑战
技术分享
发布于 2025-08-13 19:40:49
查看 14过去319天
以 for 循环扫描矩阵,返回最小值、位置、总循环次数、比较次数
function find_min_with_count(a::AbstractMatrix)
isempty(a) && error("矩阵不能为空")
min_val = a[1, 1]
min_i, min_j = 1, 1
visits = 0 # 访问/循环次数(外层×内层总迭代数)
comparisons = 0 # 比较次数(执行 if 的次数)
for i in axes(a, 1)
for j in axes(a, 2)
visits += 1
if !(i == 1 && j == 1)
comparisons += 1
if a[i, j] < min_val
min_val = a[i, j]
min_i, min_j = i, j
end
end
end
end
return min_val, (min_i, min_j), visits, comparisons
end
示例
a = [8 5 6 9 4 5 6 1 5 -1]
min_val, pos, visits, comps = find_min_with_count(a)
println("最小值 = ", min_val, ", 位置 = ", pos)
println("总循环(访问)次数 = ", visits)
println("比较次数 = ", comps)
所属专栏:Syslab基础平台
产品信息:Syslab科学计算环境