zoukankan      html  css  js  c++  java
  • 排序算法思想描述

    排序算法思想描述

    ---qpz

    一、直接选择排序法

    a) 核心思想:在无序区间寻找最值与无序区间首元素交换

              遍历所有元素排序

    1. 记录无序区间第一个元素位置

    2. 向后遍历所有元素寻找最值位置(寻找最大值还是最小值取决于降序还是升序)

    3. 遍历结束以后找到最值,交换与记录点的位置,记录点向后移动一位

    4. 重复123过程直到所有元素遍历完成

           时间复杂度为On^2) 空间复杂度为O1

     

    二、直接插入排序法

    a) 核心思想:不断的从无序区间取值插入有序区间使得有序区间依然有序

    i. 区第一个元素为有序区间

    ii. 取无序区间第一个元素,保存元素值

    iii. 将次元素值从后向前与有序区间元素比较(大还是小取决于降序还是升序)

    iv. 每次比较开始前将有序区间元素后移

    v. 直到找到插入点,将元素插入

    vi. 重复2-5步骤直到无序空间为空

    b) 时间复杂度为On^2) 空间复杂度为O1

    三、冒泡排序法

    a) 核心思想:遍历n次,每次遍历不断的交换相邻元素直到本次遍历结束没有交换一次或者n次遍历结束

    i. 从第一个元素开始向后遍历,比较本次元素与下一个元素的大小为交换条件(大小取决于降序还是升序)

    ii. 记录下一个元素重复1,结束条件为区间最后一个元素

    iii. 区间长度-1

    b) 时间复杂度On^2) 空间复杂度O1);

     

  • 相关阅读:
    Python列表推导式,字典推导式,元组推导式
    python装饰器@,内嵌函数,闭包
    7-route命令
    6-mv命令
    5-ln链接命令
    4-linux建立用户用户组以及新用户的赋权
    3-gzip压缩解压命令
    2-date命令
    1-cp命令
    UIViewContentMode的各种效果
  • 原文地址:https://www.cnblogs.com/pzqu/p/9457674.html
Copyright © 2011-2022 走看看