标签: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); else System.out.println("序列中没有 " + n); } }
标签:java
原文地址:http://anglecode.blog.51cto.com/5628271/1619867