冒泡排序

  1. 每一次循环会比较相邻的两个数,符合需求的一个交换至右边——比如要求从大到小,那么就需要把小的交换到右边。
  2. 第一次循环的结果就是未排序的部分中最小(大)的会被放到最后一个位置,下一次的循环将会把最后一个数排除进行排序。
  3. 到最后只剩下一个数的时候循环结束,排序结束。

 

选择排序

  1. 每一次循环会遍历一次未排序的部分,挑选出其中最(大)小的数与未排序的部分的最后一个数交换位置。
  2. 第二次循环会减小将上次选中的数排除在外排序,直到未排序的部分的size为1

 

插入排序

  1. 新建一个数组,将原数组中的数逐个放入新数组
  2. 插入的时候保证新数组是符合要求(有序)的

 

归并算法

  1. 采用递归比较方便
  2. 算法分为数组的拆,计算,分三个部分
  3. 拆:将数组拆成两个子数组,又将两个子数组拆成四个孙子数组,直至子孙数组的大小为1
  4. 计算:将两个拆分开的数组放入递归方法中计算,假设计算后的结果是两个有序的数组,将两个有序数组合并为一个新的有序数组返回,那么我们保证回归点返回值是有序数组,那么最后我们得到的也会是有序数组。

快速排序

  1. 采用递归比较方便(假设从小到大)
  2. 去一个数组的中间位置序号,进行一次循环,循环过后的结果是中间数左边的比中间数小,右边的比中间数大
  3. 将中间数两边的数组分别进行上述方法进行递归,直到数组的大小为一或者二

 

 

 

 

 

 

 

 

 

 

 

 

 

参考

https://blog.csdn.net/liyongchunscr/article/details/121350704