qq刷赞网站怎么做深圳企业网站建设方案
2026/3/29 11:06:40 网站建设 项目流程
qq刷赞网站怎么做,深圳企业网站建设方案,惠州网站推广排名,太原做网站个人系列文章目录 文章目录系列文章目录前言一、堆排序定义二、时间复杂度三、实现思路a.注意#xff08;升/降#xff09;四、topk问题前言 常见的基本排序算法有冒泡、选择、插入#xff0c;但效率太低。 堆排序和快速排序算法则是相对高效的算法。这篇主要先介绍堆排序 一、…系列文章目录文章目录系列文章目录前言一、堆排序定义二、时间复杂度三、实现思路a.注意升/降四、topk问题前言常见的基本排序算法有冒泡、选择、插入但效率太低。堆排序和快速排序算法则是相对高效的算法。这篇主要先介绍堆排序一、堆排序定义堆排序就是借助大/小堆的特性实现的快速排序二、时间复杂度时间复杂度N * log2本质就是建堆后借助堆来调整N个数的位置每次调整时间为堆高度log2三、实现思路以小堆为例先将数据建小堆此时堆顶是最小值。将堆顶元素与数组末尾的元素交换此时最小值被放到数组末尾。将堆的有效长度-1末尾元素视为已排序不参与后续调整。对堆顶的元素进行向下调整使其重新满足小堆的特性重复上述过程直到堆的有效长度为1//实现堆排序————时间复杂度N * logN (一次向下调整是N, 执行N次)voidHeapSort(int*a,intn){//1、建堆for(inti(n-1-1)/2;i0;i--)//需要从最后一个节点的父亲节点,开始向下调整{AdjustDown(a,n,i);}//2、将排序好的最小值排出堆排序的范围intendn-1;//3、再一直对根节点实现向下调整while(end0){swap(a[0],a[end]);//再次选择最小的值AdjustDown(a,end,0);end--;}}至此实现了数组的降序排列a.注意升/降排升序建大堆排降序建小堆因为每次堆顶会和数组末尾的元素交换四、topk问题N个数中找出最大或最小的前K个数最优方案建立一个K的数的堆。如果想找K个最大数就建小堆想找K个最小数就建大堆以小堆为例遍历N-K个数凡是比堆顶大的数就替换堆顶数据进堆向下调整。因为堆顶的数总是较小的最后剩下的k个数就是前K个最大的数。前K个最小的数同理可得。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询