码迷,mamicode.com
首页 > 其他好文 > 详细

sort()方法和binarySearch()方法

时间:2015-08-07 18:38:36      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

JAVA语言提供了两种方法,sort()方法和 binarySearch()方法,可以方便地对数组进行排序和搜索。

sort()方法使用改进的快速排序算法将数组中的元素进行升序排列,而 binarySearch()方法在一个数组中搜索某个指定值。

因为 binarySearch()方法使用二进制的搜索方法,要求数组是有序数组。因此在实际使用时,调用 binarySearch()方法之前通常先调用 sort()方法。使用导入语句 import java.util.*; 。

关于 binarySearch()的返回值:

如果目标数包含在数组中,则返回搜索键的索引即数组元素下标;否则返回 (-(插入点) - 1)。
插入点被定义为将键插入数组的那一点:即第一个大于此数的元素索引,如果数组中的所有元素都小于指定的键,则为 a.length。

注意:   这保证了当且仅当此键被找到时,返回的值将 >= 0。技术分享
          否则返回 (-(插入点) - 1)这句话要注意:要是查询的的值小于数组里面
          的最小值那么结果(-(0)-1结果就是-1),如果查询的 值大于数组里面的

          最大值。那么结果就是(-(它的索引值)-1结果就是-(1+索引值))。

 1 import java.util.*;
 2 public class JAVA1{
 3     public static void main(String[] args){
 4         Scanner in=new Scanner(System.in);
 5         System.out.println("Enter the number of array values:");
 6         int n=in.nextInt();
 7         int[] arr=new int[n];
 8         for(int i=0;i<n;i++){
 9             System.out.println("Enter element "+(i+1)+":");
10             arr[i]=in.nextInt();
11         }
12         Arrays.sort(arr);
13         System.out.print("The values in sorts order are:");
14         boolean first=true;
15         for(int i=0;i<arr.length;i++){
16             if(first){
17                 first=false;
18             }else{
19                 System.out.print(" ");
20             }
21             System.out.print(arr[i]);
22         }
23         System.out.println();
24         System.out.println("Enter the item you are searching for:");
25         int h=in.nextInt();
26         int location=Arrays.binarySearch(arr,h);
27         if(location>0){
28             System.out.println("This item is at location "+(location+1)+" in the sorted arry.");
29         }else{
30             System.out.println("This item is not in the list.");
31         }
32     }        
33 }

sort()方法和binarySearch()方法

标签:

原文地址:http://www.cnblogs.com/MC-1996/p/4711045.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!