開啟eclipse -> 建立新專案 -> 專案點右鍵後 新增一個java檔案
->檔案名稱命名為 seohyun.java -> 複製貼上下方程式碼 -> build
p.s. 如eclipse開不起來請先裝Java JDK, 一些安裝版本或不知道怎麼build按哪裡等眉角問題可以再問
程式碼
import java.util.Scanner;
public class seohyun {
//這是二元搜尋
public static int binarySearch(int[] list,int item) {
int left = 0, right = list.length;
while(left<=right) {
int mid = (left + right)/2;
if(list[mid]==item)
return mid;
else {
if(list[mid]>item) {
right = mid -1;
} else {
left = mid +1;
}
}
}
return -1;
}
//這是選擇排序
public static void selectionSort(int[] list) {
int i, j, min, temp, len = list.length;
for ( i = 0; i < len - 1; i++ ) {
min = i;
for ( j = i + 1; j < len; j++ )
if ( list[min] > list[j] ) {
min = j;
}
temp = list[min];
list[min] = list[i];
list[i] = temp;
}
}
//這是main方法
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
System.out.print("\na. 隨機產生 10 個介於 0 ~ 99 之整數。\n");
int[] list;
list = new int[10];
for( int i = 0 ; i < list.length ; i++ ) {
list[i] = (int)(Math.random() * 99 + 1 );
System.out.print(list[i] + " " );
}
System.out.print("\n\nb. 以選擇排序演算法,根據由小到大的方式陪序後輸出。\n");
selectionSort(list);
for ( int i = 0 ; i < list.length ; i++ ) {
System.out.print(list[i] + " " );
}
System.out.print("\n\nc. 輸入一個整數 x,以二分搜尋的方式,輸出其出現的位置,或是未出現。 :\n請輸入要查詢數:");
int searchkey = input.nextInt();
int ans = binarySearch( list , searchkey );
if( ans > -1 ) {
System.out.println("\n找到資料! 索引位置在: " + ans );
} else
System.out.println("\n找不到資料!");
}
}
執行結果
失敗未出現
成功找到位置
用別人的東西拼拼湊湊
沒抽離也沒分離
try catch也沒做
會有bug
但要求的正常輸入沒問題
僅供提供個架構方向參考