zoukankan      html  css  js  c++  java
  • 由玩扑克牌所想到的

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    php模拟数据请求
    vue指令
    vue指令问题
    属性(property)的特性(attribute)
    数据属性和访问器属性
    json数组
    js--基础(对象、数组、函数、if语句、while语句、do while语句、continue语句、break语句)
    typeof操作符--undefined与null
    js自定义格式时间输出当前时间,封装时间函数
    js 要求传入两个日期时间,返回两个日期时间之间,相差多少天多少小时多少分钟多少秒
  • 原文地址:https://www.cnblogs.com/hello-lijj/p/7157688.html
Copyright © 2011-2022 走看看