排序算法思想描述
---qpz
一、直接选择排序法
a) 核心思想:在无序区间寻找最值与无序区间首元素交换
遍历所有元素排序
1. 记录无序区间第一个元素位置
2. 向后遍历所有元素寻找最值位置(寻找最大值还是最小值取决于降序还是升序)
3. 遍历结束以后找到最值,交换与记录点的位置,记录点向后移动一位
4. 重复123过程直到所有元素遍历完成
O(n^2) 空间复杂度为O(1)
二、直接插入排序法
a) 核心思想:不断的从无序区间取值插入有序区间使得有序区间依然有序
i. 区第一个元素为有序区间
ii. 取无序区间第一个元素,保存元素值
iii. 将次元素值从后向前与有序区间元素比较(大还是小取决于降序还是升序)
iv. 每次比较开始前将有序区间元素后移
v. 直到找到插入点,将元素插入
vi. 重复2-5步骤直到无序空间为空
b) 时间复杂度为O(n^2) 空间复杂度为O(1)
三、冒泡排序法
a) 核心思想:遍历n次,每次遍历不断的交换相邻元素直到本次遍历结束没有交换一次或者n次遍历结束
i. 从第一个元素开始向后遍历,比较本次元素与下一个元素的大小为交换条件(大小取决于降序还是升序)
ii. 记录下一个元素重复1,结束条件为区间最后一个元素
iii. 区间长度-1
b) 时间复杂度O(n^2) 空间复杂度O(1);