排序算法思想描述
来源:互联网 发布:决策与判断知乎 编辑:程序博客网 时间:2024/05/16 14:48
排序算法思想描述
---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);
0 0
- 排序算法思想描述
- Dijkstra 算法思想描述
- 排序算法基本思想
- 排序算法思想解析
- 归并排序算法思想
- 排序算法思想解析
- 排序的算法思想
- 快速排序算法思想
- 基本排序算法思想
- 各种排序算法思想
- 排序算法思想
- 快速排序算法思想
- 排序算法思想
- 快速排序算法思想
- 希尔排序算法思想
- 冒泡排序算法思想
- 排序算法思想总结
- 排序算法思想
- 关于内存对齐的探索
- 利用CCS和DM814x Flash烧写工具烧写Nand Flash
- N*N矩阵的旋转 不开辟新空间
- C++的精度控制
- 装箱问题
- 排序算法思想描述
- n的阶乘尾数有几个0
- 瞬间判断2的幂
- 装箱问题改进
- 随机数发生器说明
- 快速排序法的实现
- HuffmanTree
- 归并排序法实现
- hdu 1753 大明A+B (java大数)