2020 11 15折半查詢

2021-10-25 09:40:10 字數 956 閱讀 4417

折半查詢

/*陣列的查詢功能

在乙個陣列中,找乙個元素,是否存在於陣列中,如果存在,就返回索引

普通查詢:

找到元素在陣列**現的索引,如果沒有這個 元素,結果就是負數

*/

public class arraymethodtest_3;

int index = binarysearch(arr,10);

system.out.println(index);

}

/*定義方法,實現,折半查詢

返回值: 索引

引數: 陣列,被找的元素

實現步驟:

1. 需要的變數定義

三個,三個指標

2. 進行迴圈折半

可以折半的條件 min <= max

3. 讓被找元素,和中間索引元素進行比較

元素 > 中間索引 小指標= 中間+1

元素 < 中間索引 大指標= 中間-1

元素 == 中間索引 找到了,結束了,返回中間索引

4. 迴圈結束,無法折半

元素沒有找到 ,返回-1

*/ public static int binarysearch(int arr, int key)else if (key < arr[mid])else

} return -1; }

/* 定義方法,實現陣列的普通查詢

返回值: 索引

引數: 陣列, 被找的元素

實現步驟:

1. 遍歷陣列

2. 遍歷過程中,使用元素和陣列中的元素進行比較

如果相同,返回元素在陣列中的索引

如果不同,返回負數

*/public static int search(int arr, int key)

} return -1;

}

24,折半查詢

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

6 2 2 折半查詢

折半查詢,又稱二分查詢,它適用於有序的順序表。基本思路是 首先將給定值key與表中中間位置元素的關鍵字比較,若相等,則查詢成功,返回該元素的儲存位置 若不等,則所需查詢的元素只能在中間元素以外的前半部分或後半部分中 例如,在查詢表公升序排列時,若給定值key大於中間元素的關鍵字,則所查詢的元素只可能...

6 13 折半查詢

給乙個嚴格遞增數列,函式int search bin sstable t,keytype k 用來二分地查詢k在數列中的位置。函式介面定義 int search bin sstable t,keytype k 其中t是有序表,k是查詢的值。裁判測試程式樣例 include using namespa...