找出大数组array中第k大的元素(要求时间复杂度O(1))
来源:互联网 发布:淘宝购物省钱方法 编辑:程序博客网 时间:2024/05/20 06:28
具体的代码实现:
import java.util.Stack;/** * @author wuwh * @date createTime:2016年3月6日 上午12:23:14 */public class KthBiggest {public static int find(int[]array, int k){//定义一个比k大1长度的临时数组 int[]tempArray = new int[k+1]; //把原始数组array的前k个元素拷贝到临时数组tempArray中for (int i = 0; i < k; i++) {tempArray[i] = array[i];}//对tempArray的前k个元素进行快速排序QuickSort.sort(tempArray, 0, k-1);//遍历原始数组array中下标为从k到array.length-1的元素//根据插入排序的思想:若小于tempArray前k个元素的任意值,则插入到合适的位置...for (int i = k; i < array.length; i++) {int j=k-1;for (;j >= 0&&array[i]<tempArray[j]; j--) {tempArray[j+1] = tempArray[j];}tempArray[j+1] = array[i];}return tempArray[k-1];}public static void main(String[] args) {int[]array = {1,9,22,33,123,3,2,5,7,11};int index = 4;System.out.println("数组array中第"+index+"大的元素为::"+find(array,index));}}
0 0
- 找出大数组array中第k大的元素(要求时间复杂度O(1))
- 从俩个有序数组中找出第K小的数。要求时间复杂度O(logmin(m,n))
- 算法(三)找出数组中第K大元素
- [LeetCode] Kth Largest Element in an Array (找出数组的第k大的元素)
- 找包含N个元素的数组里第K大的元素(引申:快速排序、找中位数、找前K大的元素)的时间复杂度
- 数组中找出第二个最大的元素(第k大的元素)
- 找出数组中的第K大的元素
- 找出一个数组中出现次数超过一半的那个数字,要求时间复杂度O(n)和空间复杂度为O(1)。
- 数组中第K大的元素
- 找出一个无环单链表里面的倒数第K个元素,时间复杂度为O(n)
- 利用快排思想找出数组中第k大的元素
- 求数组第k小的元素 要求复杂度在O(n)
- 数组-Kth Largest Element in an Array(找出第K大的数)
- 线性时间复杂度求数组中第K大的数
- leetcode_414. Third Maximum Number 返回数组中第三大的数,要求用O(n)的时间复杂度
- 数组中找出第k大的值
- 找出数组中第K大的数值
- 数组中找出第k大的值
- Android常用开发工具、站点集合
- HDU 2899 Strange fuction [二分]
- NBUT 木块拼接 1655 (模拟)
- pat 1087 All Roads Lead to Rome (30)
- 项目2:就拿胖子说事---(2)计算出标准体重,当超重时,请给出提示
- 找出大数组array中第k大的元素(要求时间复杂度O(1))
- Android Studio中mergeDebugResources时报“png-cruncher_*”异常死机的解决方案
- leetcode 166. Fraction to Recurring Decimal
- 关于UEditor配合TP框架使用
- 3.5模拟赛题解
- 神经网络的简单数学解释
- SpringAop
- mac使用git管理Github
- [重拾]深入理解gulp自动化