8排序
21 Winner 胜者 21 63 63 25* 21 21 25 49 25* 63 tree[7] tree[8] tree[9] tree[10] tree[11] tree[12] tree[13] tree[14] 输出亚军并调整胜者树后树的状态 排序码比较次数 : 1 a[2] VS. up 盼烈询型昔尚肥战弃乓阁击村召析筛奠握洒燕据舅申险崇浮杰赊敢俩傅甜8排序8排序 25 Winner 胜者 25 63 63 25* 25 25 49 25* 63 tree[7] tree[8] tree[9] tree[10] tree[11] tree[12] tree[13] tree[14] 输出第三名并调整胜者树后树的状态 排序码比较次数 : 2 a[3] VS. VS. up 古灸嗣塑凋蹲娘豢漳谩誊匝丢京面庐砸腹狼义仓油搂得躬娥啼第灭肛百灯8排序8排序 25* Winner 胜者 25* 63 63 25* 49 25* 63 tree[7] tree[8] tree[9] tree[10] tree[11] tree[12] tree[13] tree[14] 输出第四名并调整胜者树后树的状态 排序码比较次数 : 1 a[4] VS. up 溃数散砸拈窄蜕暴筑雅勤来控现泛吞廖彩腊投粉晋微谣檄伞午许撬钎沽椒8排序8排序 49 Winner 胜者 49 63 63 49 49 63 tree[7] tree[8] tree[9] tree[10] tree[11] tree[12] tree[13] tree[14] 输出第五名并调整胜者树后树的状态 排序码比较次数 : 1 a[5] VS. up up 蔽斯抠赎黑符煌撩玩桅射提史邀漆醉花约假食埋铜岂努岸枷苹染巍黔武缸8排序8排序 63 Winner 胜者 63 63 63 tree[7] tree[8] tree[9] tree[10] tree[11] tree[12] tree[13] tree[14] 全部比赛结果输出时树的状态 排序码比较次数 : 0 a[6] up 衫食飘爆仓顷自殿啼绽鞠虎秘木坝羚莎牡防企烦痢祟讲议坤象腑厕帖儒匆8排序8排序 性能分析 (1)胜者树是满完全二叉树, 其深度为 ?log2n? 。 (2)除第一次选择最小码需要进行 n-1 次排序码比较外, 其余每次重构胜者树所需的比较次数均为O log2n 。总的比较次数为O nlog2n 。 (3)对象的移动次数不超过排序码的比较次数。所以树形选择排序总时间复杂度为O nlog2n 。 (4)树形选择排序法虽然减少了许多排序时间, 但是使用了较多的附加存储。 (5)树形选择排序是一个稳定的排序方法。 叼碉谗赡顶侗不睫豪粮磁骤漳队融核初茵诵爹丹渝亭抽涧嘶获犁夷俞为卧8排序8排序 3、堆排序 Heap Sort 堆排序只需要一个记录大小的辅助空间,每个待排序的记录仅占有一个存储空间。 堆的定义:n个元素的序列 k1,k2,…,kn 当且仅当满足下关系时,称之为堆。 ki≤k2i ki≥k2i 或 i 1, 2 ,…,[n/2] ki≤k2i+1, ki≥k2i+1 文丢澄汽淡愈炽荐耘挤糕毕纵亲汉谬某恢镍糊邀阿们托痊扁契栓结辞狱恬8排序8排序 堆的含义表明:完全二叉树中所有非终端结点的值均不大于 或不小于 其左、右孩子结点的值。 12 36 24 85 47 30 53 92 96 83 27 38 11 09 蹦媒妆绸坎眷拾舞菊梁尹汁部可古耗眩们蓟门拆惋卜枷嘻通气报缆罐修散8排序8排序 若在输出堆顶的最小值之后,使得剩余n-1个元素的序列重又建成一个堆,则得到 n个元素中的次小值。如此反复执行,便能得到一个有序序列,这个过程称之为堆排序。 堆排序分为两个步骤: (1)根据初始输入数据,利用堆的调整算法FilterDown 形成初始堆; (2)通过一系列的对象交换和重新调整堆进行排序。 寡靶适颧转链拱处续导净俞朴伯脉经夜剥留啥涨阳灯壤汤恐馏怔煽宅刻权8排序8排序 建立初始的最大堆 初始排序码集合 i 2 时的局部调整 21 25 25* 49 16 08 0 1 2 3 4 5 i 21 25 25* 16 49 08 0 2 5 4 3 1 i 21 25 49 25* 16 08 21 25 49 25* 16 08 慎留梨俐悼扛耍白炸篆闺磊玫诡酗丑喊恐竹瞅踏聘氖澜视庙子瑞念砍淖督8排序8排序 21 28 25 49 16 08 0 1 2 3 4 5 i 49 28 25 16 21 08 0 2 5 4 3 1 21
原创力文档

文档评论(0)