第一种:插入排序
插入过程:
先假定2之前的数字已经排好序了,插入2就是先跟7比较,如果2比7小,那么7往后,2再和6比,同理6往后,以此类推,当2跟1相比较的时候,1往前给2腾开位置,那么2就在1后面。
后面再插入4。
若前面的数字没有排好:
那么就要以第一个数为标准,进行后面的数插入。
冒泡排序:
原理:相近的两个比较,如果前面比后面大就交换位置,反之则不用交换。
如:5和1比较,5比2大则交换。再比较5和6。
快速排序算法:
原理:把首元素作为排序标准,从后往前找第一个比首元素小的,从前往后找第一个比首元素大的。交换位置。
6和2是发生在相邻两个数之间的,所以交换过后,两数的中间就好比一条分界线,分界线前面的是比首元素小的,分界后面是比首元素大的。因此将2和首元素进行交换。划分为两个子问题。然后再对两个子问题递归地使用快速排序算法。
二分归并排序:
这个排序算法是从中间把数组分开,分成两个子问题,然后对两个子问题进行二分归并排序。
先把1和2比,小的拿出来,再把2和3比,小的拿出来,以此类推。
关于时间:
ps:图片来自中国大学mooc北京大学的老师讲堂。