原理
对于少数元素的排序,这是一个有效算法。插入排序类似于排序手中的扑克牌。开始时,我们左手为空并且桌子上的牌面向下。然后我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。
归并排序属于分治法思想,归并排序完全遵循分治模式。直观上其操作如下:
核心函数有两个,merge(A,p,q,r):将已经有序的序列 A[p…q]和A[q+1,r] 合并为一个有序序列。
当输入规模足够大,使得运行时间只与增长量级有关时,需要研究算法的渐近效率。也就是,当输入规模无限增加时,在极限中,算法的运行时间如何随着输入规模的变大而增加。本文中所用插图来自《算法导论》。
不同的记号从不同的方面来刻画一个算法的运行效率。将插入排序的最坏运行时间刻画为下式:
分别用递归和迭代实现二叉树三种遍历方式:前序遍历,中序遍历,后序遍历。递归的缺点分析。
本文包含以下内容: