三种排序的时间复杂度都是 O(n^2)
O表示时间复杂度最差的情况
选择排序:
过程
第一个分别和后面的比较,如果小于就交换位置,确定最小的放在0位置,
之后确定1位置,2位置……直到所有。
第一个循环(在哪个范围上做这件事)
找到 0-(n-1)中所有数过一遍最小值放0位置
找到 1-(n-1)中所有数过一遍最小值放0位置
…
第二个循环(进行比较并交换)
0位置和后面的比较,1位置和后面的比较,……
冒泡排序:
过程
在0-(n-1)范围内
比较0位置、1位置大小 大的交换位置排在后面
比较1位置、2位置大小 大的交换位置排在后面
比较2位置、3位置大小 大的交换位置排在后面
…
结束后最大值排在了 n-1位置
接下来
确定0-n范围内最大值,并放到n位置
冒泡排序和选择排序无论数组中数据混乱程度大小时间复杂度都不变
插入排序
过程
(时间复杂度受数据混乱程度影响)按最差的情况
确定 0-0范围内有序(自然成立)
确定 0-1范围内有序 1位置比0位置小(前一个位置值大于当前位置值) 交换(最小值交换到0位置)
确定 0-2范围内有序 2位置 一直和排在前面的比较 小就交换 (直到自己不是最小的或左边没数)
…
直到确定 0- (n-1)范围有序
外圈循环 确定范围 0-i 位置有序
内圈循环:
拿到当前位置的 前一个位置
(前一个位置要保证不能索引越界、前一个位置值大于当前位置值)
循环中符合判断 进行交换
