zoukankan      html  css  js  c++  java
  • 经典排序算法

    经典排序算法 - 梳排序Comb sort

    梳排序还是基于冒泡排序,与冒泡不同的是,梳排序比較的是固定距离处的数的比較和交换,类似希尔那样

    这个固定距离是待排数组长度除以1.3得到近似值,下次则以上次得到的近似值再除以1.3,直到距离小至3时,以1递减

    不太好描写叙述,还是看样例吧

    如果待数组[8 4 3 7 6 5 2 1]

    待排数组长度为8,而8÷1.3=6,则比較8和2,4和1,并做交换

    [8 4 3 7 6 5 2 1]

    [8 4 3 7 6 5 2 1]

    交换后的结果为

    [2 1 3 7 6 5 8 4]

    第二次循环,更新间距为6÷1.3=4,比較2和6,1和5,3和8,7和4

    [2 1 3 7 6 5 8 4]

    [2 1 3 7 6 5 8 4]

    [2 1 3 7 6 5 8 4]

    [2 1 3 7 6 5 8 4]

    仅仅有7和4须要交换,交换后的结果为

    [2 1 3 4 6 5 8 7]

    第三次循环,更新距离为3,没有交换

    第四次循环,更新距离为2,没有交换

    第五次循环,更新距离为1,三处交换

    [2 1 3 4 6 5 8 7]

    [2 1 3 4 6 5 8 7]

    [2 1 3 4 6 5 8 7]

    三处交换后的结果为[1 2 3 4 5 6 7 8]

    交换后排序结束,顺序输出就可以得到[1 2 3 4 5 6 7 8]

  • 相关阅读:
    HTML DOM 06 节点关系
    HTML DOM 05 事件(三)
    HTML DOM 05 事件(二)
    HTML DOM 05 事件(一)
    html DOM 04 样式
    html DOM 03 节点的属性
    html DOM 02 获取节点
    html DOM 01 节点概念
    JavaScript 29 计时器
    JavaScript 28 弹出框
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7323412.html
Copyright © 2011-2022 走看看