摘要:
堆排序做的,没有全部排序,找到第k个就结束 堆排序的算法时间复杂度是:O(n*log k ) 下边快排的改进做法,O(n) 利用快速排序的思想,从数组S中随机找出一个元素X,把数组分为两部分Sa和Sb。Sa中的元素大于等于X,Sb中元素小于X。这时有两种情况: 1. Sa中元素的个数小于k,则Sb中 阅读全文
posted @ 2017-09-21 21:58
stAr_1
阅读(195)
评论(0)
推荐(0)
摘要:
/* 堆是一棵完全二叉树,底层可以用数组实现,若根节点的index是0,那么若一个节点的index是i,它的父节点的index就是(i-1)/2, 左右子节点的index是i*2+1和i*2+2。 若是升序排列,就存储为最大堆,即任意节点都要比它的子节点要大。降序则存储为最小堆。 步骤: 1.构建最大堆,构建最大堆和每次调整最大堆都是把数组中最大元素调整到树顶 2.顶元素和最后元素交换,相当于把... 阅读全文
posted @ 2017-09-21 17:26
stAr_1
阅读(173)
评论(0)
推荐(0)

浙公网安备 33010602011771号