博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Expm 2_2 查找中项问题
阅读量:4837 次
发布时间:2019-06-11

本文共 1581 字,大约阅读时间需要 5 分钟。

 

对于长度为n的整型数组A,随机生成其数组元素值,然后实现一个线性时间的算法,在该数组中查找其中项。

 

 

1 package org.xiu68.exp.exp3; 2  3 import java.util.ArrayList; 4 import java.util.List; 5 import java.util.Random; 6  7 public class Exp3_1 { 8  9     //对于长度为n的整型数组A,随机生成其数组元素值,然后实现一个线性时间的算法,在该数组中查找其中项10     public static void main(String[] args) {11         // TODO Auto-generated method stub12         ArrayList
array=new ArrayList<>();13 for(int j=0;j<10;j++){14 array.clear();15 for(int i=0;i<10;i++){16 int k=new Random().nextInt(100);17 array.add(k);18 System.out.print(k+" ");19 }20 System.out.println();21 System.out.println("中位数为"+findMedian(array,array.size()/2));22 }23 }24 25 //获取中位数26 public static int findMedian(List
array,int k){27 28 int v=array.get(0);29 ArrayList
leftList=new ArrayList<>(); //比v小的集合30 ArrayList
equalList=new ArrayList<>(); //与v相等的集合31 ArrayList
rightList=new ArrayList<>(); //比v大的集合32 33 for(int i=0;i
v){36 rightList.add(value);37 }else if(value
leftList.size() && k<=leftList.size()+equalList.size())48 return equalList.get(0);49 //findMedian(S,k)=findMedian(SR,k-|SL|-|SV|) 如果k>|SL|+|SV|50 else51 return findMedian(rightList,k-leftList.size()-equalList.size());52 }53 54 }
View Code

 

转载于:https://www.cnblogs.com/xiu68/p/7988630.html

你可能感兴趣的文章
[C/C++]关于C++11中的std::move和std::forward
查看>>
图片显示、PNG透明
查看>>
Java的sql动态参数
查看>>
centos 6.5 双网卡 上网 virtualbox nat hostonly
查看>>
11大Java开源中文分词器的使用方法和分词效果对比
查看>>
解题报告 Valentine‘s seat
查看>>
反射动态创建不同的Processor
查看>>
函数中对象名的传参形式
查看>>
PHP基础知识
查看>>
Codeforces Round #480 (Div. 2)
查看>>
codeforce 1059E Split the Tree
查看>>
【读书笔记-数据挖掘概念与技术】数据预处理
查看>>
进度条第八周
查看>>
简单BFS POJ 3126 Prime Path
查看>>
运行第一个OpenCV程序
查看>>
算法笔记_003:矩阵相乘问题【分治法】
查看>>
算法笔记_017:递归执行顺序的探讨(Java)
查看>>
牛顿法与拟牛顿法学习笔记(四)BFGS 算法
查看>>
ninth week (1)
查看>>
C float与char数组 互转
查看>>