当前课程知识点:程序设计基础 > 第四章 筛法与查找 > 4.3 线性查找 > 4.3.3 最小值问题
我们把刚才的这个找特定值的查找问题还可以再扩展一下
同样的方法也可以来找满足特定性质的一个元素
刚才的这个找特定值其实就是特定性质
就是等于特定值这样一个性质
跟刚才是类似的
只是要把刚才这个等于等于112这样一个条件换掉
换成特殊的性质就可以了
但是有一种常见的性质要求比较特殊
就是求最大最小值
举个例子 还是我在跟朋友玩扑克
换了一个玩法 这次玩的规则我们叫争上游或者是跑得快
现在我手中这13张牌我发现对手出了一张7
那么我现在根据规则我是想在我手中这些牌当中
挑一个比7大的最小的的一张牌
按照大家的经验
如果手里又有10又有K
那我肯定要去拿10去管这个7
K去管有点浪费了
找一个比7大的而且最小的一张牌
是想找到得是哪一张而且是在什么位置
我就可以把这张出出来
同样的我们看一看人是怎么找的
如果手里的牌这样的话
那我们就一张一张看 还是类似的
如果不比7大就可以把这个忽略
因为管不到别人
如果比7大我就可以去跟之前记下的最小值比
看看它是不是最小的
如果有更小的值就更新我这个记录
一直到所有的牌我都看过一遍了
那我记下的那个最小值就真的是最小值了
这个跟刚才不一样的是什么呢
我刚才看到一个黑桃Q
我就可以循环结束了
我就可以跳出来了 不再继续看了
因为我已经找到了满足条件的这个元素
但是一旦我要求最大的最小值
我就得把所有的元素枚举一遍
我一旦找到一个比7大的数
比7大的牌我不知道它到底是不是最小的
所以我还得继续的往后枚举
直到把所有的牌都枚举完
所以这个思路跟刚才就稍微有一点差别
写起来大概是这个样子
首先我要记录一下当前的最小值和最小值所在的位置
然后依次枚举每一张牌
如果这一张牌比7大
我再去判断是不是比当前的最小值还要小
如果比这个最小值还要小
我就去更新我记录的这个最小值以及记录的最小值的位置
所有的牌一定要都枚举完
那么我最后得到的就是一个真的握在手里牌的最小值和位置
这个true 循环结束之后 枚举结束之后
我来看如果说我这个位置这个信息没找到
说明我手里根本就没有比7大的牌
我管不了别人
下一段我们就把这样一个思路转换成程序
-1.1 基础知识
-1.2 买菜问题
-1.3 数学运算
-1.4 补充说明
-1.5 总结
--1.5 总结
-程设论道
--程设论道
-师生问答
-第一章 编程初步--语法自测
-2.1 关于超级计算器的几点思考
-2.2 电子秤模拟 — 背景介绍及需求分析
-2.3 电子秤模拟 — 代码实现
-2.4 变量定义与变量类型
-2.5 猜数游戏与数据表示
-2.6 关于变量的讨论
--公告
-2.7 变量体现的计算思维
-程设论道
--程设论道
-师生问答
--师生问答
-第二章 变量与代数思维--语法自测
-3.1 谁做的好事——语义表示
-3.2 谁做的好事——真假检查
-3.3 谁做的好事——循环枚举
-3.4 谁是嫌疑犯——多重循环枚举
-3.5 谁是嫌疑犯——破案线索表示
-3.6 谁是嫌疑犯——用二进制枚举
-程设论道
--程设论道一
--程设论道二
--程设论道三
-师生问答
-第三章 逻辑推理与枚举解题--语法自测
-4.1 插花游戏
-4.2 筛法
-4.3 线性查找
-4.4 折半查找
--4.4.1 提问
-4.5 排序问题
-4.6 总结
--4.6.1 总结
-程设论道
--程设论道二:筛法
-师生问答
-第四章 筛法与查找--语法自测
-5.1 阶乘
-5.2 排序
-5.3 矩阵填充
-5.4 分书与八皇后
-5.5 青蛙过河
-程设论道
--程设论道一
--程设论道二
-师生问答
--师生问答一
--师生问答二
-第五章 分治思想与递归--语法自测
-6.1 兔子数列问题
-6.2 分鱼问题
-6.3 橱窗的插花问题
-6.4 最长公共子序列问题
-程设论道
--程设论道一
--程设论道二
-师生问答
--师生问答
-第六章 递推与动态规划--语法自测
-7.1 统计记录总数
-7.2 统计活跃用户数
-7.3 统计在线时长
--7.3.2 结构
-7.4 总结
--7.4.1 总结
-程设论道
--程设论道
-师生问答
--师生问答
-第七章 文本数据处理--语法自测
-8.1 将数据组织成链表
-8.2 提高链表访问效率 —— 哈希链表
-8.3 以二进制文件存储链表
-程设论道
--程设论道一
--程设论道二
-师生问答
--师生问答
-第八章 非文本数据处理--语法自测
-9.1 自动售卖程序
-9.2 配制水果信息
-9.3 指定界面语言
-程设论道
--程设论道
-师生问答
--师生问答
-第九章 可配置的程序设计--语法自测