黑马程序员技术交流社区
标题:
用折半查找法查找数组中的元素,并在相应的位置插入该...
[打印本页]
作者:
franksight
时间:
2015-2-20 23:18
标题:
用折半查找法查找数组中的元素,并在相应的位置插入该...
本帖最后由 franksight 于 2015-2-20 23:19 编辑
用折半查找法查找数组中的元素,并在相应的位置插入该元素
package exams;
public class exams1 {
/**
* @param args
*/
public static void main(String[] args) {
int[] arr={1,3,5,7,8,9};
int[] arr2=new int[arr.length+1]; //定义新数组,用于存储插入元素后的数据
int index=halfSearch(arr,8);
set(arr,arr2,8,index);
print(arr);
print(arr2);
}
//插入新数据
public static void set(int[] arr,int[] arr2,int key,int index)
{
for(int i=0;i<index;i++)
arr2[i]=arr[i];
arr2[index]=key;
for(int i=index+1;i<arr2.length;i++)
arr2[i]=arr[i-1];
}
//二分查找查找位置
public static int halfSearch(int[] arr,int key)
{
int min=0,max=arr.length ;
int mid=(min+max)/2;
while(key!=arr[mid])
{
if(key>arr[mid])
min=mid+1;
else if(key<arr[mid])
max=mid-1;
if(min>max)
return min;
mid=(min+max)/2;
}
return mid;
}
//负责打印数组
public static void print(int[] arr)
{
for(int x=0;x<arr.length;x++)
System.out.print(arr[x]+" ");
System.out.println();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2