此代码使用中位数在数组中搜索数字。我在打印其在数组中的位置时遇到问题。此代码打印出数组的最大值。例如“ 234”“您的电话号码在99999上”“ 345”“您的电话号码在99998上”,依此类推。
import java.util.Scanner;
import java.util.Arrays;
public class sok2 {
public static void main(String[] args) {
int ListaLength = 100001; //Säger hur lång listan ska vara.
int [] array = new int[ListaLength];
for (int i = 0; i < ListaLength; i++) {
array[i] = (int)(Math.random() * ((ListaLength - 1) + 1));
Arrays.sort(array);
System.out.println("Skriv in numret du letar efter.");
int element = new Scanner(System.in).nextInt();
boolean found = false;
int min = 0;
int max = array.length - 1;
int median = max/2;
while(! found && min <= max){
if(array[median] == element){
found = true;
}
if(array[median] < element){
min = median + 1;
median = (min + max) / 2;
}
else if(array[median] > element){
max = median - 1;
median = (max + min) / 2;
}
}
// this is where i assume the problem is.
System.out.println("Din siffra är på plats "+median);
}}}
对不起,但我注意到了我的错误。
int ListaLength = 100001;
int [] array = new int[ListaLength];
for (int i = 0; i < ListaLength; i++) {
array[i] = (int)(Math.random() * ((ListaLength - 1) + 1));
//there is supposed to be a closing bracket here.
Arrays.sort(array);
System.out.println("Skriv in numret du letar efter.");
int element = new Scanner(System.in).nextInt();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句