二分查詢法,在乙個有序的數列裡,把中間元素v與查詢元素target相比較:二分查詢法-迭代法(go語言)
輸出:package main
import
"fmt"
//二分查詢(前提必須在有序的陣列裡,查詢target)
//如果找到target,返回相應的索引index
//如果沒有找到target,返回-1
//時間複雜度o(logn)
func
binarysearch
(arr *
int, target int
, l int
, r int
)int
elseif(
*arr)
[middleindex]
> target
else
}return-1
}func
main()
index :=
binarysearch
(&arr,11,
0,len(arr)-1
) fmt.
println
(index)
}
二分查詢法-遞迴法(go語言):4
輸出:package main
import
"fmt"
//二分查詢(前提必須在有序的陣列裡,查詢target)
//如果找到target,返回相應的索引index
//如果沒有找到target,返回-1
//時間複雜度o(logn)
func
binarysearch
(arr *
int, target int
, l int
, r int
)int
elseif(
*arr)
[middleindex]
> target
else
}return-1
}func
main()
index :=
binarysearch
(&arr,11,
0,len(arr)-1
) fmt.
println
(index)
}
時間複雜度4
o(logn)
,遞迴法的效能比迭代法的略差。C語言二分查詢法
參考了c語言中折半查詢法 二分法 的實現 先附上 includeint binsearch int arr,int len,int key 折半查詢法 二分法 int low 0 定義初始最小 int high len 1 定義初始最大 int mid 定義中間值 while low high mi...
go語言實現二分法查詢
二分法查詢原理,自不必多說,網上隨意可找到解釋,還是比較簡單的,重點在於我要練習go語言的使用,所以實現了go語言版本。package main import fmt 迴圈二分法查詢 func binarysearch s int,target int int mid low high 2 if s...
二分查詢法
二分查詢要求 1.必須採用順序儲存結構 2.必須按關鍵字大小有序排列。優缺點 折半查詢法的優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。演算法思想 首先,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者...