首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

堆排序和快排序笔记

一些相关的概念 堆是一棵顺序存储的完全二叉树。 大根堆:每个结点的值都大于或等于子结点的值,这样的堆称为大根堆。 小根堆:每个结点的值都小于或等于子结点的值,这样的堆称为小根堆。 建立一个大根堆的时间复杂度为O(N) 二叉树在数组中的表示:对于索引为K的父节点,其左孩子为(2K+1) 右孩子为( 2K+2)。一个节点的父节点索引为(K-1)/2。 堆排序的思想 将待排序的n个元素构造成一个大顶堆(小顶堆也可以,下面以大顶堆为例)。此时,这个序列的最大值就是大顶堆的根结点;然后,将大顶堆的根结点与堆数组中的最后一个元素进行交换,交换后,大顶堆的根结点存放的就是堆数组中的最后一个元素,大顶堆的根结点中存储的原始的最大值被移走啦;接着,将剩下的n-1个元素重新调整后,构造成一个新的大顶堆,重复上面的步骤,被移动的元素就构成了一个有序的数据。 整个步骤有两个关键操作 1.建立大根堆。从右至左,从下往上进行调整

02
领券