排序
2017-12-28 本文已影响2人
早上起好早
插入排序
直接插入排序
折半插入排序
希尔排序(不稳定的排序):取d每个数隔d个比较排序,比如:1.45.6.67.78.9.90,这里取d=3(d最好取奇数或者是质数,取d有很多不同方法)
这时:1和67,45和78,6和9,比较进行排序(这里升序)
然后减小d,要是d很大,可以d=d/2,这里d比较小,则d=d-1就好
继续排序,直到排出来为止。
交换排序
冒泡排序:往前冒和往后冒
快速排序(快排):基准指针i和选择指针j(自己起的名字,不知道对不对)。先用i指针选择一个基准值,在用j指针选择一个比较值,i的选取是有技巧的(选的好排序就快,但是现阶段题目里一般不涉及),一个基准值的快排完成后,在对在基准值前面的数据进行快速排序,对基准值后面的数据进行快速排序。知道所有数据都排序完成。
选择排序
直接选择排序
树形选择排序:完全二叉树
堆排序:(最难,是考点)这个需要图形辅助理解。
one more thing
需要着重看的是:希尔排序,快排,堆排序,这里代码要看一下的,不然代码题没法做。。到头发现cpp学的不好。。