[关闭]
@Pigmon 2016-04-22T07:31:27.000000Z 字数 531 阅读 147

算法作业_5

Python


注:(li, si) <- Compare(x, y); 代表在比较 x,y 后,将较大值赋予 li, 将较小值赋予 si。在下面伪码中,i 指第 i 次比较。

5_1

用 6 次比较在 5 个元素中找到中位数;

  1. Algorithm FindMid_In6(A[])
  2. (l1, s1) <- Compare(A[0], A[1]);
  3. (l2, s2) <- Compare(A[3], A[4]);
  4. l3 <- Max(l1, l2);
  5. s4 <- Min(s1, s2);
  6. s5 <- Min(l3, A[2]);
  7. mid <- Max(s4, s5);
  8. return mid;

5_2

用 7 次比较完成 5 个元素的排序

  1. Algorithm Sort_In7(A[])
  2. (l1, s1) <- Compare(A[0], A[1]);
  3. (l2, s2) <- Compare(A[3], A[4]);
  4. (l3, s3) <- Compare(l1, l2);
  5. (l4, s4) <- Compare(s1, s2);
  6. (max, s5) <- Compare(l3, A[2]);
  7. (mid, min) <- Compare(s4, s5);
  8. B[0] <- min;
  9. B[2] <- mid;
  10. B[4] <- max;
  11. (l7, s7) <- Compare(s3, l4);
  12. B[1] <- s7;
  13. B[3] <- l7;
  14. return B[];
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注