专栏
标签
数模竞赛答题打卡挑战
技术分享
发布于 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科学计算环境
MWORKS体验官全国大学生数学建模竞赛
附件 1 个附件(1kb)

全部回答

暂无数据
暂无数据
用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天