1.冒泡排序
1.比较相邻的两个元素,如果前一个比后一个大,则交换位置。
2.第一轮的时候最后一个元素应该是最大的一个。
3.按照步骤一的方法进行相邻两个元素的比较,这个时候由于最后一个元素已经是最大的了,所以最后一个元素不用比较。
2.快速排序:
解析:快速排序是对冒泡排序的一种改进,第一趟排序时将数据分成两部分,一部分比另一部分的所有数据都要小。然后递归调用,在两边都实行快速排序。
(类似二叉树,直到递归完毕)
(一定要注意颜色变化,相同颜色代表一个数组,)
3.插入排序:
解析:
(1) 从第一个元素开始,该元素可以认为已经被排序。
(2) 取出下一个元素,在已经排序的元素序列中从后向前扫描
(3) 如果该元素(已排序)大于新元素,将该元素移到下一位置
(4) 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
(5)将新元素插入到下一位置中
(6) 重复步骤2
举个例子:
手写:(取出下一个元素,在已经排序的元素序列中从后向前扫描,蓝色)
再举个例子:(红色是要插入的元素,从后向前扫描找合适的位置,绿色数字是比红色数字大)
代码实现: