已排序的i个最大数
来源:互联网 发布:淘宝注册企业名称 编辑:程序博客网 时间:2024/05/17 13:12
9-1 已排序的i个最大数
给定一个含n个元素的集合,我们希望能用一个基于比较的算法来找出按顺序排列的i个最大元素。请找出能实现下列每一种方法的、具有最佳的渐进最坏运行时间的算法,并分析各种方法的运行时间(用n和i表示)。
a)对于输入数排序,并列出i个最大的数。
b)对输入数建立一个优先级队列,并调用EXTRACT-MAX过程i次。
c)利用一个顺序统计量算法来找到第i个最大元素,然后划分输入数组,再对i个最大数排序。
分析与解答:
a)先对输入数排序,然后列出i个最大的数的想法最为朴素,其时间复杂度为 O(nlgn)。
b)对含有n个元素的集合建立一个最大堆,时间复杂度为Θ(n),接着调用i次EXTRACT-MAX操作,时间复杂度为O(i*lgn),则总的时间复杂度为O(i*lgn)。
c)使用顺序统计算法找到第i个最大元素,时间复杂度为Θ(n),接着划分输入数组,时间复杂度为Θ(n),最后对i个最大数排序,时间复杂度为Θ(i*lgi),总的时间复杂度为Θ(n+i*lgi)。
- 已排序的i个最大数
- 对1000000个数进行排序找出10个最大的数
- 对1000000个数进行排序找出10个最大的数---后记1
- windows2003 远程桌面连接“已达最大连接数”的解决办法
- Linux中samba的最大连接数是多少[已解决]
- 求第K个最大的数
- 20个排序好的数组,每个数组500个数,按照降序排序好的,让找出500个最大的数。
- 求2个或3个正整数的最大数
- 求一个已排序旋转数组中的最小的数
- 两数和-输入已排序的数组-LintCode
- 算法导论---有序序列中的i个最大数(思考题9-1)
- 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中
- 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中
- 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。
- 合并K个已排序的链表
- 合并k个已排序的链表
- 合并n个已排序的链表
- C语言: 键盘输入任意10个整数,找出最大数及最大数的序号。
- 【贪吃蛇—Java程序员写Android游戏】系列 1.Android SDK Sample-Snake详解
- job 定时任务
- PHP webservice 身份认证 客户端与服务端实现
- BREW 与BREWMP的区别
- 格式化json串的网址
- 已排序的i个最大数
- java操作Excel
- makefile那些事儿
- 8个超棒的学习jQuery的网站
- SQL中使用update inner join和delete inner join
- struts2 拦截器使用及自带的拦截器
- WM_DESTROY, WM_CLOSE, WM_QUIT 区别
- Android中的Spinner 使用技巧
- IJG JPEG库运行时错误:Corrupt JPEG data 的解决方案