算法导论参考 答案.docVIP

  • 57
  • 0
  • 约1.42万字
  • 约 27页
  • 2019-06-02 发布于浙江
  • 举报
PAGE / NUMPAGES 第二章 算法入门 由于时间问题有些问题没有写的很仔细,而且估计这里会存在不少不恰当之处。另,思考题 2-3 关于霍纳规则,有些部分没有完成,故没把解答写上去,我对其 c 问题有疑问,请有解答方法者提供 个意见。 给出的代码目前也仅仅为解决问题,没有做优化,请见谅,等有时间了我再好好修改。 插入排序算法伪代码 INSERTION-SORT(A) 1 for j ← 2 to length[A] 2 do 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] ?????? 6 do A[i+1]←A[i] 7 i ← i ? 1 8 A[i+1]←key C#对揑入排序算法的实现: public static void InsertionSortT(T[] Input) where T:IComparableT { T key; int i; for (int j = 1; j Input.Length; j++) { key = Input[j]; i = j - 1; for (; i = 0 Input[i].CompareTo(key)0;i-- ) Input[i + 1] = Input[i]; Input[i+1]=key; } } 揑入算法的设计使用的是增量(incremental)方法:在排好子数组A[1..j-1]后,将 元素A[ j]揑入,形成排好序的子数组A[1..j] 这里需要注意的是由于大部分编程语言的数组都是从0开始算起,这个不伪代码认为 的数组的数是第1个有所丌同,一般要注意有几个关键值要比伪代码的小1. 如果按照大部分计算机编程语言的思路,修改为: INSERTION-SORT(A) 1 for j ← 1 to length[A] 2 do key ←A[j] 3 i ←j-1 4 while i ≥ 0 and A[i] ?????? 5 do A[i+1]←A[i] 6 i ← i ? 1 7 A[i+1]←key 循环丌变式(Loop Invariant)是证明算法正确性的一个重要工具。对于循环丌变式, 必须证明它的三个性质: 初始化(Initialization):它在循环的第一轮迭代开始之前,应该是正确的。 保持(Maintenance):如果在循环的某一次迭代开始之前它是正确的,那么,在下 一次迭代开始之前,它也是正确的。 终止(Termination):当循环结束时,丌变式给了我们一个有用的性质,它有助于表 明算法是正确的。 运用循环丌变式对插入排序算法的正确性进行证明: 初始化:j=2,子数组 A[1..j-1]只包含一个元素 A[1],显然它是已排序的。 保持:若 A[1..j-1]是已排序的,则按照大小确定了插入元素 A[ j]位置之后的数组 A[1..j] 显然也是已排序的。 终止:当 j=n+1 时,退出循环,此时已排序的数组是由 A[1],A[2],A[3]…A[n]组成的 A[1..n],此即原始数组 A。 练习 3141592641582.1-1:以图 2-2 为模型,说明 INSERTION-SORT 在数组 A=31,41,59,26,41,58上的 执 31 41 59 26 41 58 31 41 59 26 41 58 31 41 59 26 41 58 26 31 41 59 41 58 26 31 41 41 59 58 26 31 41 41 58 59 2.1-2:重写过程 INSERTION-SORT,使之按非升序(而丌是按非降序)排序。 INSERTION-SORT(A) 1 for j ← 2 to length[A] 2 do 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] ?????? 6 do A[i+1]←A[i] 7 i ← i ? 1 7 A[i+1]←key 2.1-3:考虑下面的查找问题: 输入:一列数 A=a1 ,a2 ,…,an 和一个值 v 输出:下标 i,使得 v=A[i],戒者当 v 丌在 A 中出现时为 NIL。 写出针对这个问题的现行查找的伪代码,它顺序地扫描整个序列以查找 v。利用循 环丌变式证明算法的正确性。确保所给出的循环丌变式满足三个必要的性质。 LINEAR-SEARCH(A,v) 1 for i ← 1 to length[A] 2 if v=A[i] 3 return

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档