標籤:java
/**
* 7-3
* 編程接收使用者輸入的若干資料,將它們降序排列。
* 再接受使用者輸入的一個數字,使用對分法在序列中尋找該資料,
* 如果存在則輸出該資料在序列中的編號,
* 如果不存在,輸出,序列中沒有該數
**/
import java.util.*;public class Test{public static void main (String args[]){Scanner read = new Scanner(System.in);System.out.println("請輸入若干整數,以-1結束");ArrayList<Integer> array = new ArrayList<Integer>();int i, j, s = 0;while ((s = read.nextInt()) != -1)array.add(s);int[] arrays = new int[array.size()];for ( i = 0; i < array.size(); i++)arrays[i]=array.get(i);/*先利用系統函數升序排列,再自行改為降序排列*/Arrays.sort(arrays);System.out.println("系統排序後");for (j = 0; j < arrays.length; j++)System.out.print(arrays[j]+" ");System.out.println();for (j = 0, i = arrays.length-1; j < i; j++, i--){int temp = arrays[j];arrays[j] = arrays[i];arrays[i] = temp;}/*輸出排序後的各個數組元素*/System.out.println("自行排序後");for (int m = 0; m < arrays.length; m++)System.out.print(arrays[m]+" ");System.out.println();/*利用系統函數實現二分尋找*/int l = 0;System.out.print("輸入要尋找的數字:");int n = 0;n = read.nextInt();l = Arrays.binarySearch(arrays, n);//System.out.println("數字 " + n + " 的下標為(從0開始計數):" + l);if (l >= 0)System.out.println("數字 " + n + " 的下標為(從0開始計數):" + l);elseSystem.out.println("序列中沒有 " + n);}}
那些年,一起學的Java 7-3