当前课程知识点:程序设计基础 > 第四章 筛法与查找 > 4.3 线性查找 > 4.3.1 扑克查找问题
上一段我们引入了一个问题叫查找问题
也就是我们要在一组元素中找一个特定值的元素
这类的问题在生活中其实比比皆是
比如说我现在在跟朋友玩扑克
用这个拱猪的规则
那我想知道我手里现在这13张扑克牌
到底有没有这张猪或者有没有黑桃Q
如果有我想知道这张黑桃Q是在手里的什么位置
就是这么一个问题
这个问题要用计算机来求解之前
首先的第一件事就是要考虑如何用计算机语言来表达一张牌
我们都知道扑克牌除了大小王有52张
每一个花色有13张
如果我们用一个char类型能不能表达呢
其实是可以表达的
我们知道char类型能够表达的范围一共有256种可能性
那么这里扑克牌只有52种可能性
表达出来绰绰有余
那能不能用int 当然也是类似的
这个int的表达范围更大了
这只是挑出其中52个值来表达不同的牌就可以了
那我们学到的其他的类型 能不能用布尔
好像表达的就不太够
布尔类型只有true和false两种取值
想表达52张牌不够
那能不能用double
这个比int的表达范围更大了
当然也没有问题
所以这个用计算机来表达52张扑克牌的方式其实有很多
大家可以自己设计符合自己思路的一个表达方式
我这里只是给一个例子
比如把刚才的这52张牌依次的
用整数101到113表示黑桃A到黑桃K
也就是A用1表示 一直到K是用13表示
然后前面的100是表示黑桃
然后200表示红心
300表示方块
400表示梅花
这样我的52张牌实际上就找到了52个整数
分别给它做一个表示
于是我手里的这13张扑克牌
就变成了一个有13个元素的整型的数组
以此为基础我们来看看
怎么解决这个查找问题
我们还是从生活中来想一想人是怎么找的
面对着13张牌有同学说
我扫一眼就看到了有没有黑桃Q在里面
那什么叫扫一眼
实际上就是一张一张牌的挑出来看
它到底是不是黑桃Q
如果是黑桃Q就说明我们找到了
记下它的位置就可以了
如果所有的牌我们都看了一遍
然后还没有发现这个黑桃Q
说明黑桃Q就不在我们手中
不在我们手中这堆牌里
那把刚才的这个思路我们整理一下
成为了下面这个程序的一个思路
初始化13张扑克
然后假设我们现在没有找到黑桃Q
然后依次的枚举手里的每张牌
如果是黑桃Q就记下这个位置停止枚举
如果这个枚举都结束了 跳出循环之后
来判断一下我们当时找到没有 有没有记住这个位置
如果有找到我们就输出这个位置
如果没找到就输出没找到
好我们下一段就把这样一个思路翻译成程序
-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 指定界面语言
-程设论道
--程设论道
-师生问答
--师生问答
-第九章 可配置的程序设计--语法自测