二分法在排好序的陣列中查詢一個數
阿新 • • 發佈:2018-12-14
package com.sxt.add;
import java.util.Scanner;
public class Rfenfa {
static Scanner input=new Scanner(System.in);
public static void main(String[] args) {
int[] a = { 12, 34, 65, 75, 90,100 };
System.out.println("-------二分法------");
ranfenfa(a);
}
public static void ranfenfa(int[] a) {
System.out.println("輸入你要查詢的數");
int data=input.nextInt();
int left=0;
int right=a.length-1;
int m=(left+right)/2;
while(left<right ) {
if(data==a[m]) {break;}
if(data<a[m]) {
right=m-1;
m=(right+left)/2;
}else {
left=m+1;
m=(left+right)/2;
}
}
if(a[m]==data) {
System.out.println("這個數在第"+(m+1)+"的位置上");
}
else
{
System.out.println("沒有找到這個數");
}
}
}
import java.util.Scanner;
public class Rfenfa {
static Scanner input=new Scanner(System.in);
public static void main(String[] args) {
int[] a = { 12, 34, 65, 75, 90,100 };
System.out.println("-------二分法------");
ranfenfa(a);
}
public static void ranfenfa(int[] a) {
System.out.println("輸入你要查詢的數");
int data=input.nextInt();
int left=0;
int right=a.length-1;
int m=(left+right)/2;
while(left<right ) {
if(data==a[m]) {break;}
if(data<a[m]) {
right=m-1;
m=(right+left)/2;
}else {
left=m+1;
m=(left+right)/2;
}
}
if(a[m]==data) {
System.out.println("這個數在第"+(m+1)+"的位置上");
}
else
{
System.out.println("沒有找到這個數");
}
}
}