由玩扑克牌所想到的

晚上一直在复习数据结构,看排序这部分内容,边看边理解,直到看到了这张ppt,觉得很有意思,写出来给大家一起分享。

理解到这里时,我眼光发亮,还是这么一回事哦。

回忆小时候,没事情总是和小伙伴们一起打扑克牌。有时候,发牌人发一张,我捡起来按照大小顺序,往手里插入一张。最后发完了,我也就把牌理好了。

这个情况在数据结构里的排序是叫做插入排序法。

但也有些时候,是等小伙伴们全部发好了之后。我一次性理好的。具体操作如下。

左手拿着叠在一起的牌(未排序),然后慢慢的打开。从中找,看有没有王,有没有2,有没有A,有没有K……。如果有的话,就用右手从中抽出来。一直到左手里的牌全部抽到右手中。这样也可以完成排序。

那么这个排序叫什么呢??选择排序?其实也不完全是选择排序。至少跟课本里的选择排序不一样。

课本里的选择排序,是从一堆数中,选择最小的跟第一位数交换。然后再选第二小的跟第2个数交换。这里主要是交换。

而我小时候洗牌因为有两只手,所以就不是交换,而是把左手里的牌,选入右手中。

相当于又开辟了一个新的空间。实际上,本质的说,这也是一种选择排序。

---------------------------------------------------------

现实中的打牌也用到了很多数据结构的理论知识。

除了洗牌用到了排序。接牌用到了查找外。

还有算牌。应该用到了概率的东西吧。如果跟一个人打牌打多了,还可能用到了人工智能算法。

------------------------------------------------------------

哈哈,感觉如果有时间精力的话,可以去写一个可以自动打牌的软件,也去玩玩人工智能打扑克牌。。哈哈哈哈

时间: 2024-10-10 00:33:50

由玩扑克牌所想到的的相关文章

郑州玩扑克牌仪器

郑州玩扑克牌仪器手机l382=6250=830哪里有卖报道,一段时间以来,清华大学网络被入侵,华为.中兴被监控,各种有关互联网安全的负面消息不断出现,引发人们的长期关注,今天,国家互联网信息办公室宣布,为维护国家网络安全.保障中国用户合法利益,我国即将推出网络安全审查制度. 郑州玩扑克牌仪器 目前,我国网民数量位居世界第一.国家互联网信息办公室发言人姜军表示,少数国家政府和企业长期利用自己产品的单边垄断和技术独霸优势,大规模收集敏感数据,近年来,我国政府机构.企业.大学和电信主干网络遭遇大规模的

TYVJ P2002 扑克牌

背景 Admin生日那天,Rainbow来找Admin玩扑克牌……玩着玩着Rainbow觉得太没意思了,于是决定给Admin一个考验~~~ 描述 Rainbow把一副扑克牌(54张)随机洗开,倒扣着放成一摞.然后Admin从上往下依次翻开每张牌,每翻开一张黑桃.红桃.梅花或者方块,就把它放到对应花色的堆里去.Rainbow想问问Admin,得到A张黑桃.B张红桃.C张梅花.D张方块需要翻开的牌的张数的期望值E是多少?特殊地,如果翻开的牌是大王或者小王,Admin将会把它作为某种花色的牌放入对应堆

TYVJ 2002 扑克牌 题解

P2002 扑克牌 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 Admin生日那天,Rainbow来找Admin玩扑克牌……玩着玩着Rainbow觉得太没意思了,于是决定给Admin一个考验~~~ 描述 Rainbow把一副扑克牌(54张)随机洗开,倒扣着放成一摞.然后Admin从上往下依次翻开每张牌,每翻开一张黑桃.红桃.梅花或者方块,就把它放到对应花色的堆里去.Rainbow想问问Admin,得到A张黑桃.B张红桃.C张梅花.D张方块需要翻开的牌

哪些英语用法是普通中国学生最生疏的?

请附上例句和解释,谢谢!如果能分别说一下美国.英国.澳大利亚的本地用法更好. 传送门:你知道哪些中国人普遍生疏但意境很美的英语词汇? - 英语翻译哪些英语母语者常用的词组对于普通中国大学生来说是生疏的? - 英语翻译 谢老珂 ,骨子里是文科生 5360 人赞同 4.14.2016 更新 36-40.(谢谢知友们的赞,留言和私信.这个搬运工的活儿我做得很开心.会继续更新.) 11.21.2015更新 31-35.8.25.2015更新 26-30.8.11.2015更新 23-25.8.4.201

快速找出故障机器

题目描述 关心数据挖掘和搜索引擎的程序员都知道,我们需要很多的计算机来存储和处理海量数据. 然而,计算机难免出现硬件故障而导致网络联系失败或死机.为了保证搜索引擎的服务质量,我们需要保证每份数据都有多个备份. 简单起见,假设每个机器存储一个标号为ID的记录(ID是小于十亿的整数),假设每份数据都保存两个备份,这样就有两个机器储存了同样的数据. 1.在某个时间,如果得到一个数据文件ID的列表,是否能够快速地找出这个表中仅出现一次的ID? 2.如果已经知道只有一台机器死机(也就是说只有一个备份丢失)

C++ HOJ 24点

[问题描述] 用4张扑克牌上的点数算24点是一个经典的游戏了.一般要求只允许使用加减乘除和括号进行四则运算. 例如:1,2,3,4   可以用表达式(1+2+3)*4 = 24 算出24. 要求计算出有多少种实现方法并输出全部实现方式. [思路一] 基本原理是穷举4个整数所有可能的表达式,然后对表达式求值. 表达式的定义: expression = (expression|number) operator (expression|number) 因为能使用的4种运算符 + - * / 都是2元运

js正则表达式语法

转载自http://blog.csdn.net/zaifendou/article/details/5746988 1. 正则表达式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符. 举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功:匹配到的内容是:"c":匹配到的位置是:开始于

1965: [Ahoi2005]SHUFFLE 洗牌

1965: [Ahoi2005]SHUFFLE 洗牌 Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 408  Solved: 240[Submit][Status][Discuss] Description 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度过相当长的一段时间,小联提议用扑克牌打发长途旅行中的无聊时间.玩了几局之后,大家觉得单纯玩扑克

排序 一些基本的排序

*/--> pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;}