資料結構之折半查詢

2021-07-26 11:46:55 字數 717 閱讀 8215

/**

* 思想: 折半查詢的查詢的過程是:先確定待查記錄所在的範圍,然後逐步縮小範圍直到找到或者找不到該記錄為止。

* 舉例說明:例如:已知的9個資料元素的有序表(1,2,3,4,5,6,7,8,9),現要查詢關鍵字為2的資料元素。

* 假設指標low和high分別指向待查元素的所在範圍的下界和上界,指標mid指示區間的中間位置,即mid=[(low+high)/2].

* 在此例中,low=1,high=9,mid=5.

* 下面是查詢的過程:

* 1,2,3,4,5,6,7,8,9

* ↑low ↑mid ↑high

* 由於2<5,所以high=mid-1,mid=(low + high) / 2=2,在這個有序表裡的下標為2的資料元素是2,所以也就找到了2.

*/ package half;

public class half else

}public void halfdata(int s, int a) else if (s > a[this.mid]&&this.high-this.low>=0) else if(s == a[this.mid]&&this.high-this.low>=0)else if(this.high-this.low<0)

}public static void main(string args) ;

half.half(4, a);

}

資料結構 折半查詢

1 折半查詢需要查詢表中的資料有序的排列,首先將查詢關鍵字k與表中間的元素r mid 進行對比,若k r mid 則將最左端的下標low更新為mid右邊的第乙個下標,繼續進行折半查詢 若k折半查詢的平均查詢長度為 時間複雜度為o log n 2 折半查詢實現演算法 首先輸入乙個有序的序列再輸入需要查...

資料結構 折半查詢

假設有序表按關鍵碼公升序排列,取中間記錄作為比較物件,若給定值與中間記錄相等,則查詢成功 若給定值小於中間記錄,則在有序表的左半區繼續查詢 若給定值大於中間記錄,則在有序表的右半區繼續查詢。不斷重複上述過程,知道查詢成功或者查詢區域無記錄,查詢失敗。private static intbinarys...

資料結構 查詢 折半查詢

簡單介紹下折半查詢,折半查詢僅適用於有序的順序表。查詢成功的平均查詢長度為log2 n 1 1 折半查詢判定樹的樹高為log2 n 1 向上取整 下面投放折半查詢 include include define maxsize 50 define keytype int 順序表結構體 typedef ...