| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 【数据结构】TopK问题 -> 正文阅读 |
|
[数据结构与算法]【数据结构】TopK问题 |
TopK问题
一、问题分析1. 方法一对
2. 方法二将
3. 方法三如果n很大,内存中无法储存,插入堆和排序的方法都不行
原理: 在方法二的基础上,大堆实现不了,但小堆却能很好的实现 小堆的优点就是,根是堆中所有元素中最小的元素,我们建立一个小堆,可以存放 可能会担心:
时间复杂度: 二、TopK实现本篇在上一章:【数据结构】堆_Rinne’s blog-CSDN博客 写了几个二叉树常用的插口
1. 前k个数的小堆
2. n-k个数和根去比较比它大,替换 再向下调整
3. 打印堆
三、测试测试代码: 这里用到了srand函数和time函数以及rand函数,用来生成随机数值 更多有关随机数生成的详细知识可以参考文章:C语言随机数生成教程
测试结果: 下一篇会讲解堆排序的问题,可能感觉和topk相似,但topk只是找了前k个大的数,并没有排序 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:20:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |