那些年,一起学的Java 7-3

/**

 * 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);
	}
}


你可能感兴趣的:(java,程序,降序排列)