冒泡排序
- 每一次循环会比较相邻的两个数,符合需求的一个交换至右边——比如要求从大到小,那么就需要把小的交换到右边。
- 第一次循环的结果就是未排序的部分中最小(大)的会被放到最后一个位置,下一次的循环将会把最后一个数排除进行排序。
- 到最后只剩下一个数的时候循环结束,排序结束。
选择排序
- 每一次循环会遍历一次未排序的部分,挑选出其中最(大)小的数与未排序的部分的最后一个数交换位置。
- 第二次循环会减小将上次选中的数排除在外排序,直到未排序的部分的size为1
插入排序
- 新建一个数组,将原数组中的数逐个放入新数组
- 插入的时候保证新数组是符合要求(有序)的
归并算法
- 采用递归比较方便
- 算法分为数组的拆,计算,分三个部分
- 拆:将数组拆成两个子数组,又将两个子数组拆成四个孙子数组,直至子孙数组的大小为1
- 计算:将两个拆分开的数组放入递归方法中计算,假设计算后的结果是两个有序的数组,将两个有序数组合并为一个新的有序数组返回,那么我们保证回归点返回值是有序数组,那么最后我们得到的也会是有序数组。
快速排序
- 采用递归比较方便(假设从小到大)
- 去一个数组的中间位置序号,进行一次循环,循环过后的结果是中间数左边的比中间数小,右边的比中间数大
- 将中间数两边的数组分别进行上述方法进行递归,直到数组的大小为一或者二
参考
https://blog.csdn.net/liyongchunscr/article/details/121350704
浙公网安备 33010602011771号