1.冒泡排序
基本思想:从前向后依次比较相邻元素的大小,若逆序则交换位置,使得较大的元素往后放,最后形成从小变大的顺序。
2.选择排序
基本思想:首先从一组需要排序的数据中找出最小的数,然后放到首位,就是与第一位交换位置,然后再从剩下的数据中找出最小的与当前剩下的数据中的第一位交换,以此类推,最终按照从小到大的顺序排列。
3.插入排序
基本思想:设有一组数据(k1,k2,k3.....kn),默认k1为单独的一组有序数据,k2到kn为无需数据,第一步取k2与k1比较大小并插入到有序数据中,然后取无序数据中第二位k3与有序数据比较大小,之后插入到相应的位置,以此类推,将所有无序数据依次插入到有序数据中,最终按照从小到大的顺序排列。
4.希尔排序(插入排序的改进版本)
基本思想:希尔排序是插入排序的改进版,基本思路一般为将一组数据分为(d1=n)组,然后对这n组进行插入排序,第二步为将排好的数据分成(d2=n/2)组,再对各组进行插入排序,直至分成(di=1)组进行最终的插入排序,最后按照从小到大排列。
5.快速排序
基本思想:快速排序采用的是一种分治的思想,先从一组数据中选择一个基数,通常是最后一个,然后从剩下的数据中选择比基数小的排列到左边,比基数大的排列到右边,这是第一次分区确定基数的位置,然后再从两个分区随机选择基数进行同样的操作,直至最后每一个元素是一个分区,最终按照从小到大的顺序排列。
6.归并排序
基本思想:将每个数据看成有序的数据,先将一组数据分成n组,然后两两合并使得合并的数据也是有序的,接着再重复第二步直至合并成一个有序的数据,最终按照从小到大的顺序排列。
7.基数排序
基本思想:将一组中的数据统一为同样的长度,位数不够前面补0,第一步只看个位数,将每个数据依次放入个位数字对应的桶中,形成第一个数列,第二步将这个数列放入十位数字对应的桶中形成第二个数列,依此类推,最终形成一个从小到大的有序数列。