import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Scanner;
public class Search {
public static void main(String[] args) {
// TODO Auto-generated method stub
int searchNum;//要查询的数字
int signOne,signTwo;//用来判断
int readNum;//存放文本转化的数字
System.out.print("请输入要查找的数据:");
Scanner scan = new Scanner(System.in);
searchNum = scan.nextInt();
try{
FileReader f = new FileReader("C:/Users/Y470/Desktop/largeW_bubble.txt");
BufferedReader br = new BufferedReader(f);
ArrayList arraylist = new ArrayList();
String line = br.readLine();
while (line != null) {
readNum = Integer.parseInt(line.trim());
arraylist.add(readNum);
line = br.readLine();
}
int array[] = new int[arraylist.size()];//存放从文本读出来的数据
for(int i=0;i<array.length;i++){
array[i] = (Integer) arraylist.get(i);
}
//顺序查找
signOne = SSearch(array,array.length-1,searchNum);
if(signOne == 0){
System.out.print("顺序查找:");
System.out.println("数据"+array[signOne]+"查不到");
}
//二分查找
signTwo = BSearch(array,1,array.length-1,searchNum);
if(signTwo == 0){
System.out.print("二分查找:");
System.out.println("数据"+array[signTwo]+"查不到");
}
br.close();
}catch(Exception e){
e.printStackTrace();
}
}
//顺序查找
public static int SSearch(int arr[],int high, int target ){
int i = high;
arr[0] = target;
while(arr[i] != target){
i--;
}
return i;
}
//二分查找
public static int BSearch(int arr[],int low,int high,int target){
int mid;
if(low>high)
return 0;
else{
mid = (low+high)/2;
if(target<arr[mid]){
return BSearch(arr,low,mid-1,target);
}
else if(target>arr[mid]){
return BSearch(arr,mid+1,high,target);
}
else
return mid;
}
}
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Scanner;
public class Search {
public static void main(String[] args) {
// TODO Auto-generated method stub
int searchNum;//要查询的数字
int signOne,signTwo;//用来判断
int readNum;//存放文本转化的数字
System.out.print("请输入要查找的数据:");
Scanner scan = new Scanner(System.in);
searchNum = scan.nextInt();
try{
FileReader f = new FileReader("C:/Users/Y470/Desktop/largeW_bubble.txt");
BufferedReader br = new BufferedReader(f);
ArrayList arraylist = new ArrayList();
String line = br.readLine();
while (line != null) {
readNum = Integer.parseInt(line.trim());
arraylist.add(readNum);
line = br.readLine();
}
int array[] = new int[arraylist.size()];//存放从文本读出来的数据
for(int i=0;i<array.length;i++){
array[i] = (Integer) arraylist.get(i);
}
//顺序查找
signOne = SSearch(array,array.length-1,searchNum);
if(signOne == 0){
System.out.print("顺序查找:");
System.out.println("数据"+array[signOne]+"查不到");
}
//二分查找
signTwo = BSearch(array,1,array.length-1,searchNum);
if(signTwo == 0){
System.out.print("二分查找:");
System.out.println("数据"+array[signTwo]+"查不到");
}
br.close();
}catch(Exception e){
e.printStackTrace();
}
}
//顺序查找
public static int SSearch(int arr[],int high, int target ){
int i = high;
arr[0] = target;
while(arr[i] != target){
i--;
}
return i;
}
//二分查找
public static int BSearch(int arr[],int low,int high,int target){
int mid;
if(low>high)
return 0;
else{
mid = (low+high)/2;
if(target<arr[mid]){
return BSearch(arr,low,mid-1,target);
}
else if(target>arr[mid]){
return BSearch(arr,mid+1,high,target);
}
else
return mid;
}
}
}