摘要:
最近也参加了一些公司去笔试,发现很多公司都喜爱考查“堆排序”这玩意儿,特地花一点儿时间学习并自己亲自写代码去实现。 这里的堆结构是二叉堆,是一种完全二叉树的数据结构,堆排序分为两部分,第一部分是建堆,可以根据要求建成大根堆或小根堆;第二部分就是排序了。堆排序是用数组模拟树的结构来进行排序的。 建堆过程:从编号更大的节点开始更新,取其左右孩子大者交换位置不断更新直到当前节点的值大于左右孩子节点权值或更新到了叶子节点。 排序过程:不断取出根节点元素,每取出一个根节点元素就将尾节点元素放到根并更新堆。/* 堆排序实现*/#include #include #include #incl... 阅读全文