二分法查詢陣列索引

2021-10-06 20:59:55 字數 1245 閱讀 5453

題目

給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。

你可以假設陣列中無重複元素。

示例 1:

輸入: [1,3,5,6], 2

輸出: 1

示例 2:

輸入: [1,3,5,6], 2

輸出: 1

示例 3:

輸入: [1,3,5,6], 7

輸出: 4

示例 4:

輸入: [1,3,5,6], 0

輸出: 0

解題思路1.先判斷目標值是否在陣列中,

2,如果不在,由於陣列是乙個排序陣列,所以可以直接比較目標值target和陣列第乙個值的最後乙個值的大小,並返回陣列索引

3.目標值target在陣列中,用二分法來進行查詢,比直接遍歷陣列所有元素更加節省記憶體空間

c++**

#include

using

namespace std;

intsearchinsert

(int

* nums,

int length,

int target)

//在中心值的左邊,改變右值

if(target < nums[mid]

)//恰好在中心值

if(target == nums[mid])}

//查詢結束,返回索引

return i;

}int

main()

;int m =7;

int length =

sizeof

(arr)

/sizeof

(arr[0]

);int result =

searchinsert

(arr,length, m)

; cout <<

"陣列的索引為:"

<< result <

}

結果截圖

二分法查詢陣列的索引

二分法查詢 折半查詢 的前提 必須是有序陣列。使用遞迴 其中,item 是你要查詢的值 low 是陣列的起始下標 high 是陣列的最後乙個下標 public static int binarysearch int arr,int item,int low,int high int mid low ...

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...

python二分法查詢 Python 二分法查詢

二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...