算法
所谓 算法 (algorithm)就是定义良好的计算过程,它取一个或一组值作为 输入 ,并产生出一个或一组值作为 输出 。亦即,算法就是一系列的计算步骤,用来将输入数据转换成输出结果。我们还可以将算法看作是一种工具,用来解决一个具有良好规范说明的 计算问题 。
例如,假设要将一列数按非降顺序进行排列,下面是有关该排序问题的形式化定义:
输入 :由 n 个数构成的一个序列<a1, a2, …, an>
输出 :对输入序列的一个排列(重排)<a1 ', a2 ', …, an '>使得a1 ' <= a2 ' <= … <= an '
插入排序
插入排序 算法是一个对少量元素进行排序的有效算法。它的伪码是以一个过程的形式给出的,称为 INSERTION-SORT
,它的参数是一个数组 A [ 1 .. n ],包含了 n 个待排数字。(在伪码中, A 中元素的个数 n 用 A.length 来表示。)输入的各个数字是 原地排序 的(sorted in place),就是说这些数字是在数组 A 中进行重新排序的,在任何时刻,至多只有其中的常数个数字是存储在数组之外的。当过程 INSERTION-SORT
执行完毕后,输入数组 A 中就包含了已排好序的输出序列。
INSERTION-SORT(A) 1 for j = 2 to A.length 2 key = A[j] 3 // Insert A[j] into the sorted sequence A[1 .. j - 1] 4 i = j - 1 5 while i > 0 and A[i] > key 6