您的位置:首页 > 编程语言 > Java开发

java数组操作排序小练习

2012-10-10 21:58 246 查看
练习:有一个有序的数组。想要将一个元素插入到该数组中,还要保证该数组时有序的。问:如何获取该元素在数组中的位置————折半的深层演化

怎么做呢?

class Example1_1

{

 public static void main(String[] args)

 {

  int arr[]={1,2,3,4,5,7,8,90,};//有序表

  //折半查找调用

  int key=Search(arr,82);

  System.out.println("Key:"+key);

 }

//定位方法

 public static int Search(int []arr,int key)

 {

  int min=0;                            

  int max=arr.length-1;//最小,最大的角标初始化

  int mid;

  while(min<=max)    //当最小角标和最大角标同时存在且max>=min时

  {

   mid=(min+max)/2;  //折半

   if (key>arr[mid])       //大的话

  min=mid+1;             //往后找

  else if (key<arr[mid]) //小的话

  max=max-1;            //往前找

  else

   return mid;

  }

  return min+1;//返回的是要插入的元素的角标

 }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java search string class