/**
* @(#)sort2.java
* @author: Arthur
* @version 1.00 2007/10/3
* @(1)purple sort (2)binary search (3)random值不重複!
*/
import java.io.*;
public class sort2 {
public static void main(String args[])throws IOException {
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
System.out.print("請輸入陣列元素個數:");
int num=Integer.parseInt(buf.readLine());
int a[]=new int[num];
int i=0,j=0,temp=0;
System.out.print("請輸入亂數最大值:");
int ran=Integer.parseInt(buf.readLine());
for (i=0;i
for (j=0;j
if (a[i]==a[j]){
i--;
break;
}
}
}
System.out.println("原始陣列:");
for (i=0;i
for (i=0;i
a[i]=a[j];
a[j]=temp;
}
}
}
System.out.println("排序陣列:");
for (i=0;i
System.out.print("請輸入一個數字:");
int input=Integer.parseInt(buf.readLine());
int x=1,y=0;
while (true){
x=x*2;
y++;
if (x>num) break;
}
int cnt=0,k=0,down=0,up=num;
j=0;
while (true){
cnt++;
k=(down+up)/2;
if (input>a[k]) down=k+1;
if (input
if (input==a[k]) {
j=1;
break;
}
if (cnt>y){
j=0;
break;
}
}
if (j==1) System.out.println("執行次數:"+cnt+",在第"+(k+1)+"個:a["+(k)+"]");
if (j==0) System.out.println("執行次數:"+cnt+",找不到資料!");
}
}