題目
給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。
你可以假設陣列中無重複元素。
示例 1:
輸入: [1,3,5,6], 2示例 2:輸出: 1
輸入: [1,3,5,6], 2示例 3:輸出: 1
輸入: [1,3,5,6], 7示例 4:輸出: 4
輸入: [1,3,5,6], 0解題思路1.先判斷目標值是否在陣列中,輸出: 0
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 ...