折半查詢確定插入陣列中元素的位置
阿新 • • 發佈:2018-12-31
問題:
給出一組有序的整數,要在這組整數中插入一個數字,如何確定該插入數字的下標。
解決方案:
對於一組有序的整數,要用到查詢,一定為折半查詢。不同的是折半查詢是查詢是否存在元素,而這個要查詢位置。
給出一組有序的整數,要在這組整數中插入一個數字,如何確定該插入數字的下標。
解決方案:
對於一組有序的整數,要用到查詢,一定為折半查詢。不同的是折半查詢是查詢是否存在元素,而這個要查詢位置。
public class Index{ public static void main(String args[]) { int[] array={6,14,15,26,32}; int index=getIndex(array,28); System.out.print("index="+(index+1)); } public static int getIndex(int[] array,int key) { int mid,low,high; low=0; high=array.length-1; mid=(low+high)>>1; while(low<=high) { if(array[mid]>key) high=mid-1; else if(array[mid]<key) low=mid+1; else return mid; mid=(low+high)>>1; } return low; } }