【这样一组数4528491637825675初始堆后,利用堆-查字典问答网
分类选择

来自黎明刚的问题

  【这样一组数4528491637825675初始堆后,利用堆排序怎么排,规律是什么?高人能不能讲述一下初始堆和堆排序的区别是什么呀?】

  这样一组数4528491637825675初始堆后,利用堆排序怎么排,规律是什么?

  高人能不能讲述一下初始堆和堆排序的区别是什么呀?

1回答
2020-06-26 10:49
我要回答
请先登录
樊继壮

  我说的是建立最小堆,最大堆同理可得

  首先建立完全二叉树

  45

  2849

  16378256

  75

  从n/2个节点开始选择,第一趟,16比75小,不换.到n/2-1个节点,49和82、56比,49小,也不换.到n/2-2个结点,28和16、37比,16小,变成

  45

  1649

  28378256

  75

  45和16、49比,16最小,换

  16

  4549

  28378256

  75

  45和28、37比,28最小

  16

  2849

  45378256

  75

  最小初始堆建好了,到输出,首先75和16换,输出16

  75

  2849

  45378256

  16

  将剩下的元素建成堆

  28

  3749

  45758256

  16

  56和28换,输出28

  56

  3749

  45758228

  16

  再建初始堆

  37

  4549

  56758228

  16

  82和37换,输出37

  82

  4549

  56753728

  16

  建初始堆

  45

  5649

  82753728

  16

  75和45换,输出45

  75

  5649

  82453728

  16

  建初始堆

  49

  5675

  82453728

  16

  82和49换,输出49

  82

  5675

  49453728

  16

  建初始堆

  56

  8275

  49453728

  16

  75和56换,输出56

  75

  8256

  49453728

  16

  建初始堆

  75

  8256

  49453728

  16

  82和75换,输出75

  82

  7556

  49453728

  16

  输出82

  82

  7556

  49453728

  16

  得到有序序列82,75,56,49,45,37,28,16,是按从小到大输出的,如果要按从大到小输出,建初始堆的时候,建最大堆就可以了,规律似乎看不出来

2020-06-26 10:53:58

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •