【算法】堆排序大根堆和小根堆建堆以及元素输出

发布时间:2023-05-10 17:28:49

  这样一组数 45 28 49 16 37 82 56 75初堆后,如何用堆排序排序,规律是什么?一是建立完整的二叉树 45 28 49 16 37 82 56 75从n/2节点开始选择,第一次,16-75小,不换。n49和82节点/2-1、56比,49小,不换。n/2-2个结点,28和16、37比,16小,变成 45 16 49 28 37 82 56 7545和16、49比,最小16 45 49 28 37 82 56 7545和28、37比,28最小 16 28 49 45 37 82 56 75最小初始堆建成,到输出,先换75和16,输出1675 28 49 45 37 82 56 16把剩下的元素建成堆 28 37 49 45 75 82 56 1656和28换,输出28 56 37 49 45 75 82 28 16再建初始堆37 45 49 56 75 82 28 1682和37换,输出3782 45 49 56 75 37 28 16建初始堆45 56 49 82 75 37 28 1675和45换,输出4575 56 49 82 45 37 28 16建初始堆49 56 75 82 45 37 28 1682和49换,输出4982 56 75 49 45 37 28 16建初始堆56 82 75 49 45 37 28 1675和56换,输出5675 82 56 49 45 37 28 16建初始堆75 82 56 49 45 37 28 1682和75换,输出7582 75 56 49 45 37 28 16输出8282 75 56 49 45 37 28 16

  序列为82、75、56、49、45、37、28、16,按从小到大输出。如果要按从大到小输出,可以在建初始堆的时候建最大堆,好像看不到规律。

上一篇 java 使用 mysql-binlog-connector-java 同步Mysql数据
下一篇 【JQuery】JQuery封装的小例子

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题