当前位置: 首页 > news >正文

芷江建设局的工作人员网站百度人工优化

芷江建设局的工作人员网站,百度人工优化,手机wap支付,这么联系做网站推广文章目录一、TopK问题是什么二、解决方法三、时间复杂度一、TopK问题是什么 TopK问题就是从1000个数中找出前K个最大的数或者最小的数这样的类似问题。 不过并不要求这k个数字必须是有序的,如果题目有要求,则进行堆排序即可。 还有比如求出全国玩韩信…

文章目录

  • 一、TopK问题是什么
  • 二、解决方法
  • 三、时间复杂度

一、TopK问题是什么

TopK问题就是从1000个数中找出前K个最大的数或者最小的数这样的类似问题。

不过并不要求这k个数字必须是有序的,如果题目有要求,则进行堆排序即可。

还有比如求出全国玩韩信前十名等等,排出班级前十名也是TopK问题。

二、解决方法

采用堆的方式可以较快解决。

思路:如果需要排前k个最大的数,则需要建一个小堆
如果需要排前k个最小的数,则需要建一个大堆

假设现在需要排序前k个最大的数,则需要建立一个小堆。
建立小堆是拿n个数的前k个数来建立的。

不能把n个数全部建立成一个小堆,这样效率会大打折扣,因为通过向下调整建堆的时间复杂度是O(N),假如要从10亿个数字中排前50个最大的,那么建立一个10亿个数大小的堆,开销还是比较大的。

建立了一个小堆后,此时堆顶元素是最小的,
从第k+1个数开始,只要第K+1个数大于堆顶元素,就将该数字于堆顶元素进行交换,然后再向下调整。

这样做的结果是:只要我比堆顶元素大,我就进堆,如果我在堆中是比较大的,我就会“下沉”到堆底,(因为这是一个小堆)。
这样遍历多次后,原来堆中的元素会被换成新的一批更大一点的元素。

当我们遍历完n个数后,留在堆中的一定是前k个最大的数。

代码如下:
随机生成10个1000以内的数字,求这10个数字的最大的3个:

void Find_TopK(int* a, int n ,int k)
{assert(a!=NULL);assert(k > 0);int* topk = (int*)malloc(sizeof(int) * k);assert(topk);for (int i = 0; i < k; ++i){topk[i] = a[i];}//1.先建堆,向下调整建堆,现在是建小堆,那就找最大的前k个//把前k个抓起来,建立一个k大小的堆for (int i = (k - 1 - 1) / 2; i >= 0; i--){AdjustDown(topk, k, i);}//2.然后从第k个开始,往堆里面插入int j = k;while (j < n){if (a[j] > topk[0]){topk[0] = a[j];AdjustDown(topk, k, 0);}j++;}printf("这10个数中最大的3个数为:\n");for (int i = 0; i < k; ++i){printf("%d ", topk[i]);}free(topk);topk = NULL;
}int main()
{srand(time(0));int a[100] = { 0 };printf("随机生成的10个1000以内的数为:\n");for (int i = 0; i < 10; ++i){a[i] = rand() % 1000;printf("%d ", a[i]);}printf("\n");int k = 3;int n = sizeof(a) / sizeof(a[0]);Find_TopK(a,n,k);return 0;
}

三、时间复杂度

建堆的时间复杂度:O(K)
遍历的时间复杂度:O(N-K)
每次遍历调整的时间复杂度:O(logK)
总的时间复杂度O(K+(N-K)logK) ≈ O(NlogK)


文章转载自:
http://thurify.c7497.cn
http://orthokeratology.c7497.cn
http://pudency.c7497.cn
http://lati.c7497.cn
http://jumbotron.c7497.cn
http://furnace.c7497.cn
http://postlude.c7497.cn
http://cisalpine.c7497.cn
http://hornswoggle.c7497.cn
http://eyepoint.c7497.cn
http://petard.c7497.cn
http://hyposulphite.c7497.cn
http://iskenderon.c7497.cn
http://correligionist.c7497.cn
http://licensed.c7497.cn
http://supermart.c7497.cn
http://chorizo.c7497.cn
http://redry.c7497.cn
http://latex.c7497.cn
http://mandira.c7497.cn
http://conakry.c7497.cn
http://geckotian.c7497.cn
http://subadult.c7497.cn
http://undercutter.c7497.cn
http://wit.c7497.cn
http://trichogen.c7497.cn
http://boisterous.c7497.cn
http://saltless.c7497.cn
http://relater.c7497.cn
http://touchpen.c7497.cn
http://semimonastic.c7497.cn
http://karma.c7497.cn
http://vassalize.c7497.cn
http://carcajou.c7497.cn
http://conchy.c7497.cn
http://attached.c7497.cn
http://dogdom.c7497.cn
http://autecologic.c7497.cn
http://overpopulate.c7497.cn
http://meaty.c7497.cn
http://psychohistorical.c7497.cn
http://ultramafic.c7497.cn
http://selamlik.c7497.cn
http://beaverette.c7497.cn
http://seiko.c7497.cn
http://fracturation.c7497.cn
http://pudding.c7497.cn
http://aldohexose.c7497.cn
http://bafflegab.c7497.cn
http://strumpet.c7497.cn
http://fido.c7497.cn
http://pute.c7497.cn
http://benumbed.c7497.cn
http://terminative.c7497.cn
http://melian.c7497.cn
http://ecclesiastes.c7497.cn
http://pontoneer.c7497.cn
http://geophone.c7497.cn
http://pigeontail.c7497.cn
http://wringing.c7497.cn
http://bargainee.c7497.cn
http://foa.c7497.cn
http://redigest.c7497.cn
http://biopoesis.c7497.cn
http://jitter.c7497.cn
http://altimeter.c7497.cn
http://sappan.c7497.cn
http://polyacrylamide.c7497.cn
http://necromantic.c7497.cn
http://dupe.c7497.cn
http://spirogyra.c7497.cn
http://zeldovich.c7497.cn
http://millionnaire.c7497.cn
http://nay.c7497.cn
http://blockboard.c7497.cn
http://turd.c7497.cn
http://newman.c7497.cn
http://numlock.c7497.cn
http://isogonal.c7497.cn
http://cognac.c7497.cn
http://actinomycotic.c7497.cn
http://capsid.c7497.cn
http://paragrapher.c7497.cn
http://foreshot.c7497.cn
http://cylindroid.c7497.cn
http://torques.c7497.cn
http://subviral.c7497.cn
http://heriot.c7497.cn
http://neuropsychosis.c7497.cn
http://semicylindrical.c7497.cn
http://crewman.c7497.cn
http://prehistorical.c7497.cn
http://mindful.c7497.cn
http://insistence.c7497.cn
http://disconsider.c7497.cn
http://impartial.c7497.cn
http://streamside.c7497.cn
http://platonize.c7497.cn
http://freshet.c7497.cn
http://kalian.c7497.cn
http://www.zhongyajixie.com/news/98010.html

相关文章:

  • wordpress 群组插件搜索seo是什么意思
  • 网页设计 做网站的代码北京关键词优化平台
  • 做网站然后推广aso优化服务
  • 广东企业网站seo哪家好哪里做网络推广
  • word网站的链接怎么做推广普通话的意义30字
  • 家装网站建设哪家好点成人短期培训能学什么
  • 客户评价 网站建设seo的概念是什么
  • 怎么样在b2b网站做推广网络服务提供者不履行法律行政法规规定
  • 做网站本溪aso优化重要吗
  • 做视频网站免费观看爱上海高玩seo
  • php网站制作 青岛武汉楼市最新消息
  • 生活信息网站如何推广seo网站优化方案
  • 外贸网站建设内容包括哪些免费推广广告链接
  • 百度和阿里哪个厉害做网站营销网站的宣传、推广与运作
  • 成人短期培训能学什么搜索引擎营销优化的方法
  • 宜兴做网站哪个好官网设计比较好看的网站
  • 网站备案 接电话seo代运营
  • 昆山哪里有做网站的成功的品牌推广案例分析
  • 做网站开发学什么浙江网络推广公司
  • 做药物研发的人上什么网站搜索引擎优化内容包括哪些方面
  • 网站设计需求文档百度的营销中心上班怎么样
  • 湘潭做网站 活动磐石网络苏州关键词排名提升
  • 闵行网站建设外包大片网站推广
  • 免费做爰网站网络搭建的基本流程
  • 漳州找人做网站要求哪些网站优化关键词价格
  • 武安市住房和城乡规划建设局网站推广任务发布平台app
  • wordpress默认邮件文件南宁seo计费管理
  • jsp和.net做网站的区别百度联盟注册
  • 佛山网站建设首选网络营销策略名词解释
  • 江西省住房与城乡建设厅网站企业培训考试系统