/**
* 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);
else
System.out.println("序列中没有 " + n);
}
}
















