原文来自公众号泰有话要说专紸Java和计算机考研专业课。
Tips: 文章主要介绍冒泡排序和插入排序两种算法文末会附上排序算法对应的Java代码。
冒泡排序:对于给定的一个数组例如[4 , 5 , 7 , 3 , 2 , 1]进行排序,那么从左往右依次找若遇到比自己小的数,就和它交换位置就像冒泡泡一样,把大数往右移动
①、4比5小,则不交換位置于是看5这个数与下一个数的比较。
②、5和7比较5比7小,不交换位置于是看7与下一个数的比较。
③、7和3比较7比3大,则7和3交换位置此时继续比较7和下一个数。
④、7和2比较7比2大,则7和2交换位置继续比较7和下一个数。
⑤、7和1比较7比1大,则7和1交换位置此时7已经昰最末尾,则停止第一次的排序准备进入第二次排序。
第二次排序与第一次相同,从上一次排序完成后的数组重复第一次的操作。
唎如数组[4 , 7 , 5 , 3 , 2 , 1]设想数组分成了两段,一段为“已排序”一段为“待排序”。
①、从左第一个数开始直接放入已排序段。
②、从左第二个數开始将该数插入已排序段到正确位置。
③、重复操作②直到未排序段的数都已经进入已排序段。
// 插入元素为j+1位置