1089 Insert or Merge (25分) 和 1098 Insertion or Heap Sort (25分)

记原数组为 \(a\),部分排序数组为 \(s\)

Insertion sort

  • \(s\) 的前面部分有序,后面的无序部分与 \(a\) 相同

Merge sort

  • \(a\) 进行模拟归并排序,将每一个状态与 \(s\) 比较。若 \(a=s\),则再进行一次归并排序后退出

Heap sort

  • \(s\) 的后面部分有序,前面部分是大顶堆

  • 从后向前遍历,确定堆的大小。将堆顶 \(s[0]\) 与堆的末尾元素 \(s[k]\) 交换,再进行一次向下调整

👉 1089 code

👉 1098 code

posted @ 2020-08-12 17:24  Blind  阅读(53)  评论(0编辑  收藏  举报