zoukankan      html  css  js  c++  java
  • 经典排序算法 耐心排序Patience Sorting

    经典排序算法 - 耐心排序Patience Sorting

    这个排序的关键在建桶和入桶规则上

    建桶规则:如果没有桶,新建一个桶;如果不符合入桶规则那么新建一个桶

    入桶规则:只要比桶里最上边的数字小即可入桶,如果有多个桶可入,那么按照从左到右的顺序入桶即可

    举个例子,待排数组[6 4 5 1 8 7 2 3]

    第一步,取数字6出来,此时一个桶没有,根据建桶规则1新建桶,将把自己放进去,为了表述方便该桶命名为桶1或者1号桶

    第二步,取数字4出来,由于4符合桶1的入桶规则,所以入桶1,并放置在6上边,如下图2所示

    第三步,取数字5出来,由于5不符合桶1的入桶规则,比桶1里最上边的数字大,此时又没有其它桶,那么根据建桶规则新建桶2,放入住该桶

    第四步,取数字1出来,1即符合入1号桶的规则,比4小嘛,也符合入2号桶的规则,比5也小,两个都可以入,根据入桶规则1入住1号桶(实际入住2号桶也没关系)

    第五步,取数字8出来,8比1号桶的掌门1大,比2号桶的掌门5也大,而且就这俩桶,所以8决定自立门派,建立了3号桶,并入住该桶成为首位掌门

    第六步,取数字7出来,1号桶,2号桶的掌门都不行,最后被3号桶收服,投奔了3号桶的门下

    第七步,取数字2出来,被2号桶掌门收了

    第八步,取数字3出来,被3号桶的现任掌门7收了

    全部入桶完毕....

    Image(3)

    然后从第一个桶顺序取出数字1 4 6,2 5,3 7 8

    剩下的使用插入排序结束战斗,下班回家也~

    返回主目录 [经典排序算法][集锦]



    ------------------------------------------
    除非特别声明,文章均为原创,版权与博客园共有,转载请保留出处
    BUY ME COFFEE
  • 相关阅读:
    虚拟机中按键切回windows系统界面快捷键
    余数
    质数(素数)判断代码实现
    =excel========》函数使用
    python 正则表达式规则
    linux常用命令详解
    c指针
    visual studio 2015 开发时常见问题的解决方案
    python装饰器
    构造方法
  • 原文地址:https://www.cnblogs.com/kkun/p/2260291.html
Copyright © 2011-2022 走看看