排序算法
排序算法从内存的角度上来说分成内排序和外排序
内排序:要排序的数据在内存上
外排序:要排序的数据在外存上
一:冒泡排序:可以理解为鱼图泡泡(大泡泡在最上面)
冒泡排序是依次进行比较,比如一数据63974,使用冒泡排序的话就是先将63进行比较,比较出大的,然后在用大的和后面的进行比较,6和3比,6大,6在和9进行比较,以此类推,所以冒泡排序的话最上面的一定是最大的,比较交换位置的时候,比如说6和3,要先将3拿出来放在一个容器中,然后将6放在3 的位置上,再将3拿出来放在6的位置上
这就完成了一次冒泡排序,所以如果使用冒泡对一个数据进行排序的话,有可能会冒泡排序很多次
另外冒泡排序是稳定的排序
二:选择排序:
选择排序是不稳定的,比8948797这堆数据,选择排序的做法是先浏览一圈这堆数据,然后在这堆数据中找出最小的元素和这堆数据中第一个元素交换位置,然后在浏览一圈找出剩下数据中最小的元素,和第二个元素交换位置,以此类推
三:插入排序
插入排序可以理解成小混混踢馆
拿一组数据为例子:16495730
插入排序要将一组数据分成有序和无序两种,默认第一个数据为有序,其他为无序,无序的要依次和有序中最大的元素做比较,就相当于一个校园里,一开始只有一个人,所以他是老大
这里一是有序,6495730为无序,然后6也来到这个学校了,和有序中最大的做比较,这里有序中最大的是1,6和1进行比较,6大,所以6放在1前面变成16,这个时候有序变化了16,而无序变成495730,再然后4也来到这个学校了,他也要争老大,争老大肯定找这个学校的老大干架,发现打不过他,先不管6,去和1比较,发现能干过,那4 就排在6后面,当第二,这时候有序和无序分别是146,95730
剩下的数据排序以此类推