折半查詢遞迴和非遞迴實現

2022-03-26 23:11:42 字數 380 閱讀 1454

折半查詢,在此做一總結,遞迴和非遞迴實現如下所示:

1

//data增序排列3//

非遞迴折半查詢

4int binarysearch(int * data, int keyvalue, int

len)

15return -1;16

}1718//

遞迴折半查詢

19int* binarysearchrecursion(int * data, int keyvalue, int

len)

27return0;

28 }

遞迴實現的時候返回的是指標型別的,如果想得到keyvalue在data裡面的位置,可以使用這個指標減去data即可。

二分查詢(折半查詢)的遞迴和非遞迴實現(c )

1.首先確定整個查詢區間的中間位置 mid start end start 2。2使用待查關鍵字key值與中間位置的關鍵字值進行比較。3 若相等,則查詢成功 若大於,則在後 右 半個區域繼續進行折半查詢 若小於,則在前 左 半個區域繼續進行折半查詢 4 對確定的縮小區域再按折半公式,重複上述步驟。i...

java演算法 折半查詢 遞迴演算法和非遞迴演算法

package ceshi public class bisearch param args 折半查詢 當查詢表是有序表時,可採用折半查詢 基本思想 在有序表中,取中間元素作為比較物件,若給定值k與中間記錄關鍵字相等,則查詢成功 若給定值k小於中間記錄的關鍵字,則在表的左半區繼續查詢 若給定值k大於...

Java版 非遞迴折半查詢

折半查詢又稱為二分查詢,這種查詢方法需要待查的查詢表滿足兩個條件 首先,查詢表必須使用順序的儲存結構 其次,查詢表必須按關鍵字大小有序排列。演算法的基本思想是 首先,將查詢表中間位置資料元素的關鍵字與給定關鍵字比較,如果查詢相等則查詢成功 否則利用中間元素將表一分為二,如果中間元素關鍵字大於給定關鍵...