zoukankan      html  css  js  c++  java
  • 排序

    冒泡排序

      冒泡排序只需两个循环即可实现,外循环从1到n依次递减,内循环执行n-i长度的两两对比交换。

      for i in range(1,n):

          for j in range(1,n-i):

               对比j前后两个数据大小

    选择排序

    和冒泡一样,两个循环,不过内循环变成寻找n-i长度内的最小/大值,然后和相应位置进行交换。

    直接插入排序(小数据,基本有序)

    对于有序数列,新的数据直接插入到序列中,但是对于较大规模的数据,可以使用希尔排序。

    希尔排序(改进的直接插入排序)

    将数据进行分组,间隔取数分为不同的组,对不同的组分别进行直接插入排序,逐步缩小增量,(2^n-1,...,1)

    归并排序

    顾名思义,使用归并算法,将数据两个分组,逐步分组至不能再进行分组,两两对比,然后再合并。

    堆排序

    借用完全二叉树的思想来实现,当使用最大堆时,要求父节点大于子节点,首先建堆满足条件,此时就得到了最大值(即根节点),然后将最大值放到数组最后,然后对前面的继续使用堆排序,即可得到有序数列。

    快速排序

    选择一个主元,使得左边的数据都比它小,有的数据都比它大,方法大致为从两端开始,左边找比它大的和右边比它小的,然后这两个交换,直到两个标志相遇,然后相遇点和主元交换即可,然后对两边分别使用快速排序即可得到有序数列。

    ##未完待续

  • 相关阅读:
    六、使用media实现响应式布局
    五、块全屏居中
    四、圆角长方形的设计
    三、常用行内元素与块元素
    二、“…”显示超出文本
    一、CSS实现横列布局的方法总结
    window如何一键关闭所有进程程序
    纯css竟可以做出边框这样长宽度的过渡效果
    改变网页的兼容性模式
    bootstrap知识笔记
  • 原文地址:https://www.cnblogs.com/xbyfight/p/11522731.html
Copyright © 2011-2022 走看看