二分查詢 java實現

2021-09-02 19:33:21 字數 855 閱讀 7176

二分查詢

演算法思想:又叫折半查詢,要求待查詢的序列有序。每次取中間位置的值與待查關鍵字比較,如果中間位置的值比待查關鍵字大,則在前半部分迴圈這個查詢的過程,如果中間位置的值比待查關鍵字小,則在後半部分迴圈這個查詢的過程。直到查詢到了為止,否則序列中沒有待查的關鍵字。

實現:

1.非遞迴**

public

static

int bisearch(int array,int

a)else

if(array[mid]else

}return -1;

}

2.遞迴實現

public

static

int sort(int array,int a,int lo,int

hi)

else

if(a>array[mid])

else

}return -1;

}

時間複雜度為 o(logn)   

查詢第乙個元素出現的位置(元素允許重複)

public

static

int bisearch(int array,int

a)else

}if(array[low]!=a)

else

}

查詢元素最後一次出現的位置

public

static

int bisearch(int array,int

a)else

}if(array[low]!=a)

else

}

JAVA實現二分查詢

二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置記錄將表分成前 後...

Java 實現二分查詢

二分查詢 又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。時間複雜度o h o log2n 演算法思想 首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等...

Java實現二分查詢

二分查詢是一種高效的查詢演算法,其基本思想是,在乙個有序的陣列中,先和陣列最中間的值進行比較,如果小於最中間的這個值,則將查詢範圍縮小為左半部分,大於則將查詢範圍縮小為右半部分,每次縮小一半的查詢範圍,直至找到與這個數相等的數。當資料量比較大的時候,二分查詢相對於順序查詢,顯示出明顯的優勢。下圖為二...