一、冒泡排序
顾名思义,这种排序就像气泡一样,最大值,一点一点的向最后一位移动。有一种比较常用的说法,该算法可以当成是一大排只能看到左右位置人(身高)的人。首先第一个位置的人比较其下一个位置比较,若下一个位置的小于(大于)其,交换位置。然后以下一个位置开始(经过上一次比较,上一次必小于(大于)其),然后再次操作,直到移动到最后一个位置。那么最后一个位置必为最大值。如下代码
这里i可以当作是遍历次数,如第一次遍历,比较总是-1次,然后j为上述聚焦的那个点,(交换位置的点),因为这里只有在前位置大于后位置的时候换位置,因此,该排序是稳定的。
二、选择排序
这里改进了冒泡排序,如下代码
但选择排序不是一种稳定的排序,会打乱相同值的默认次序。
三、插入排序
插入排序先假设在一个位置之前的元素是有序的,那么,在一个有序的数组里面遍历十分快,以这个为理念,当一个元素之前的元素为一个时候,它决定是有序的,那么就可以就此建立循环了,如下代码。
而插入排序的位置移动十分的频繁,因此,希尔排序大大的简书了位置的交换,它以一个增量为分隔,取出一组数组,对其进行排序,并将其左移。第二次减少增量,再次操作,直到增量为1,得到结果。