zoukankan      html  css  js  c++  java
  • 常用算法

    代码实现:https://gitee.com/sgrslim/DataStructure.git

    冒泡排序:

    相邻数据元素比较,进行交换。     O(n^2)

    选择排序:

    原理:

    1. 每一次遍历的过程,都假定第一个索引处的元素是最小值,和其他索引处的值依次进行比较,如果当前索引值大于其他某处索引处值,则假定其他某个索引处的值为最小值,最后找出最小值所在的索引
    2. 交换第一个索引处和最小值索引处位置

          O(n^2)

    插入排序

    原理:

    1. 将所有元素分为两组,已排序 和 未排序。
    2. 找到未排序组中的第一个元素,向已排序组中进行插入。
    3. 倒叙遍历已排序元素,依次和待插入元素进行比较,直到找到一个元素小于等于待插入元素,那么就把待插入元素放到这个位置,其他元素向后移动一位。

    希尔排序

    原理

    1. 选定一个增长量h(一般为取数组长度的二分之一),按照增长量h作为数据分组的依据,对数据进行分组
    2. 对分好组的每一组数据完成插入排序
    3. 减小增长量,最小减为1,重复第二步操作

    推演:希尔排序 是 插入排序的 优化。旨在减少 比较次数和交互次数。以增量h将数组分成多个小组,每个小组进行排序。最终h=1时,其实就是插入排序,但是因为进行过多次小组排序后,有一定的排序基础,所以效率很高。

  • 相关阅读:
    pyppeteer
    maven生命周期clean,compile,install,package区别
    centos7安装anyproxy
    安装jupyter notebook
    Linux-Centos7下安装Anaconda
    python文件 启动django项目
    PyCharm实用插件
    pyqt5 安装额外的工具
    PyQt5高级界面控件之QTableWidget的具体使用方法
    k8s Metrics Server 获取资源指标与 hpa 部署
  • 原文地址:https://www.cnblogs.com/sgrslimJ/p/13046924.html
Copyright © 2011-2022 走看看