close

/**
 * @(#)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       a[i]=(int)(Math.random()*(ran-1)+1);
      for (j=0;j        if (a[i]==a[j]){
        i--;
        break;
       }
      }
     }
     System.out.println("原始陣列:");
     for (i=0;i      System.out.println();
     for (i=0;i       for (j=0;j        if (a[i]         temp=a[i];
        a[i]=a[j];
        a[j]=temp;
       }
      }
     }
     System.out.println("排序陣列:");
     for (i=0;i      System.out.println();
     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+",找不到資料!");
    }
}

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 浮雲 的頭像
    浮雲

    missice's Blog

    浮雲 發表在 痞客邦 留言(0) 人氣()