随机生成100个0到200的整数 用折半查找法(二分法)查找50是初始数据的第几个数, 并输出查找过程(即和什么数进行了比较)。
Posted Pistachiout
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机生成100个0到200的整数 用折半查找法(二分法)查找50是初始数据的第几个数, 并输出查找过程(即和什么数进行了比较)。相关的知识,希望对你有一定的参考价值。
1、随机生成100个0到200的整数
用折半查找法(二分法)查找50是初始数据的第几个数, 并输出查找过程(即和什么数进行了比较)。
public class Random0To200 {
public int random;
public int num;
public void display()
{System.out.print(random+"在第"+num+"个位置 ");}
}
```java
public class find50 {
private static Random0To200[] randomArrays;
public static void main(String[] args) {
int num=0;
randomArrays = new Random0To200[100];
for(int i=0;i<100;i++)
{randomArrays[i]= new Random0To200();
randomArrays[i].random=(int) (Math.random()*201);
randomArrays[i].num=i; }
for(int i=0;i<100;i++)
{randomArrays[i].display();
num++;
if(num==10)
{num=0;
System.out.println();
}}
System.out.println();
Random0To200 temp=new Random0To200();
for(int i=0;i<100;i++)
{ for(int j=i;j<100;j++)
{ if(randomArrays[i].random>randomArrays[j].random)
{temp=randomArrays[i];
randomArrays[i]=randomArrays[j];
randomArrays[j]=temp;
}
}
}
System.out.println("排序后");
for(int i=0;i<100;i++)
{ randomArrays[i].display();
num++;
if(num==10)
{num=0;
System.out.println();
}}
System.out.println("");
int low=0;
int high=99;
int mid;
while(low<=high)
{mid=(low+high)/2;
if(randomArrays[mid].random==50)
{System.out.println(randomArrays[mid].random+"=50");
randomArrays[mid].display();
System.out.println();
randomArrays[mid].random=0;
}
else if(randomArrays[mid].random<50)
{low=mid+1;
System.out.println(randomArrays[mid].random+"<50");}
else {high=mid-1;
System.out.println(randomArrays[mid].random+">50");}
}
System.out.println(" 已无50");
}
}
以上是关于随机生成100个0到200的整数 用折半查找法(二分法)查找50是初始数据的第几个数, 并输出查找过程(即和什么数进行了比较)。的主要内容,如果未能解决你的问题,请参考以下文章
JS中,输出1-10之间的随机整数,用Math.random()咋搞呢