Java 二分法查詢

2021-08-01 04:17:27 字數 1029 閱讀 7685

這學期學了資料結構這門課,這會都期末了才想起來更新部落格,所以我就來了,話不多說。

**如下:

package com.vgbh;

public

class binarysearch

/* 二分法查詢必須是已經排序好的數列,且必須為正序,才可進行查詢

* * 首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,

* 如果兩者相等,則查詢成功;否則利用中間位置記錄將表分成前、後兩個子表,

* 如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,

* 否則進一步查詢後一子表。重複以上過程,直到找到滿足條件的記錄,

* 使查詢成功,或直到子表不存在為止,此時查詢不成功。

*///此為正序查詢

//二分查詢普通迴圈實現

public

intbinary1 (int arr,int num)

int left = 0;

int right = arr.length - 1;

while(left <= right) else

if (arr[bin] > num) else

if (arr[bin] < num)

}return -1;

}//二分法查詢遞迴實現

public

intbinary2(int arr,int left,int right,int num)

int bin = (left + right) / 2;

if (arr[bin] == num) else else

if (num < arr[bin]) else

if (num > arr[bin])

}return -1;

}public

void

data (int arr,int n)

}}

1.還有乙個二分法查詢的問題,正序還是逆序問題,可以通過修改比較的大於號和小於號修改,是否正序查詢還是逆序查詢。

Java二分法查詢

前提 必須是有序的資料。基本思想 把乙個有序的資料乙份為二。然後判斷是比目標資料大了還是小了,如果小了往左邊的部分找 如果大了往右邊的資料找。確定了找的方向後再次把資料一分為二,繼續上面的步驟直到找到為止。涉及到了遞迴的思想。通俗的講 每次減少一半,然後確定方向,再次減少一半,直到找到為止。1 傳入...

二分法查詢 Java

原理 基本思想 假設資料是按公升序排序的,對於給定值x,從序列的中間位置開始比較,如果當前位置值等於x,則查詢成功 若x小於當前位置值,則在數列的前半段中查詢 若x大於當前位置值則在數列的後半段中繼續查詢,直到找到為止。演算法 假如有一組數為3,12,24,36,55,68,75,88要查給定的值2...

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...