二分查詢法(Go語言)

2021-10-18 16:22:44 字數 1414 閱讀 2895

二分查詢法,在乙個有序的數列裡,把中間元素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)

}

輸出:

4
二分查詢法-遞迴法(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)

}

輸出:

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.必須按關鍵字大小有序排列。優缺點 折半查詢法的優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。演算法思想 首先,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者...