验证中...
Languages: Java
Categories: 其他
Latest update 2019-03-15 23:44
折半查找(1)
Raw Copy
//注:二分查找是针对的有序数组,查找效率相比基本查找效率更高
public static int halfSearch_1(int[] arr,int key){
int max,min,mid;
min=0;
max=arr.length-1;
mid=(max+min)/2;
while(arr[mid]!=key){
if(key>arr[mid]){
min=mid+1;
}
else if(key<arr[mid]){
max=mid-1;
}
if(max<min){ //当大角标移动到比小角标还小时,说明未找到元素
return -1;
}
}
mid=(max+min)/2;
return mid;
}
折半查找(2)
Raw Copy
//注:二分查找是针对的有序数组,查找效率相比基本查找效率更高
public static int halfSearch_2(int[] arr,int key){
int max,min,mid;
min=0;
max=arr.length-1;
while(min<=max){
mid=(max+min)/2;
if(key>arr[mid])
min=mid+1;
else if(key<arr[mid])
max=mid-1;
else
return mid;
}
return -1;
}
基本查找
Raw Copy
//数组最基本的查找功能 一般无序的时候用该方法 有序的时候用折半查找
public static int getIndex(int[] arr,int key){
for(int x=-;x<arr.length;x++){
if(arr[x]==key)
return x;
}
return -1;
}

Comment list( 2 )

s9 2019-03-15 23:44

此博客写于2019/3/15/23:41
有感而发。
努力是一件好事情,但是其实可以掩饰的,没必要在别人面前展现出来,这样感动自己,毫无意义,请某些人不必这样。
如果觉得我错了,请用你的努力得到的成果来打我的脸。
只有垃圾的努力,才会得不到成果。

s9 2019-03-15 23:40

数组的基本查找和二分查找是最基本的算法,初学者要掌握好,了解其思想,画图清晰明了,并不难。
在java实际开发中,有序数组的排序一般不需要自己写。已有Arrays类中的方法,Arrays.binarySearch()方法等同于折半查找。

You need to Sign in for post a comment

Help Search

183227_9af5e6a8_1826025 111910_4d91f001_1826025