二分法是一種快速查詢的方法,時間複雜度低,邏輯簡單易懂,總的來說就是不斷的除以2除以2...
例如需要查詢有序陣列arr裡面的某個關鍵字key的位置,那麼首先確認arr的中位數或者中點center,下面分為三種情況:12
3假如arr[center]>key,說明key在arr中心左邊範圍;
假如arr[center]假如arr[center]=key,說明key在arr中心。
範圍每次縮小一半,寫個while的死迴圈知道找到為止。
二分法查詢非常快且非常常用,但是唯一要求是要求陣列是有序的
我的另一篇部落格剛好介紹了氣泡排序可以去看看:
二分法的**如下:
1 #!/usr/bin/python3.4執行結果:2 # -*- coding: utf-8 -*-
3 4 def binarysearch(arr, key):
5 # 記錄陣列的最高位和最低位
6 min = 0
7 max = len(arr) - 1
8 9 if key in arr:
10 # 建立乙個死迴圈,直到找到key
11 while true:
12 # 得到中位數
13 # 這裡一定要加int,防止列表是偶數的時候出現浮點資料
14 center = int((min + max) / 2)
15 # key在陣列左邊
16 if arr[center] > key:
17 max = center - 1
18 # key在陣列右邊
19 elif arr[center] < key:
20 min = center + 1
21 # key在陣列中間
22 elif arr[center] == key:
23 print(str(key) + "在陣列裡面的第" + str(center) + "個位置")
24 return arr[center]
25 else:
26 print("沒有該數字!")
27 28
29 if __name__ == "__main__":
30 arr = [1, 6, 9, 15, 26, 38, 49, 57, 63, 77, 81, 93]
31 while true:
32 key = input("請輸入你要查詢的數字:")
33 if key == " ":
34 print("謝謝使用!")
35 break
36 else:
37 binarysearch(arr, int(key))
原文出自ttyb
二分法是一種快速查詢的方法,時間複雜度低,邏輯簡單易懂,總的來說就是不斷的除以2除以2...
例如需要查詢有序陣列arr裡面的某個關鍵字key的位置,那麼首先確認arr的中位數或者中點center,下面分為三種情況:12
3假如arr[center]>key,說明key在arr中心左邊範圍;
假如arr[center]假如arr[center]=key,說明key在arr中心。
範圍每次縮小一半,寫個while的死迴圈知道找到為止。
二分法查詢非常快且非常常用,但是唯一要求是要求陣列是有序的
我的另一篇部落格剛好介紹了氣泡排序可以去看看:
二分法的**如下:
1 #!/usr/bin/python3.4執行結果:2 # -*- coding: utf-8 -*-
3 4 def binarysearch(arr, key):
5 # 記錄陣列的最高位和最低位
6 min = 0
7 max = len(arr) - 1
8 9 if key in arr:
10 # 建立乙個死迴圈,直到找到key
11 while true:
12 # 得到中位數
13 # 這裡一定要加int,防止列表是偶數的時候出現浮點資料
14 center = int((min + max) / 2)
15 # key在陣列左邊
16 if arr[center] > key:
17 max = center - 1
18 # key在陣列右邊
19 elif arr[center] < key:
20 min = center + 1
21 # key在陣列中間
22 elif arr[center] == key:
23 print(str(key) + "在陣列裡面的第" + str(center) + "個位置")
24 return arr[center]
25 else:
26 print("沒有該數字!")
27 28
29 if __name__ == "__main__":
30 arr = [1, 6, 9, 15, 26, 38, 49, 57, 63, 77, 81, 93]
31 while true:
32 key = input("請輸入你要查詢的數字:")
33 if key == " ":
34 print("謝謝使用!")
35 break
36 else:
37 binarysearch(arr, int(key))
原文出自ttyb
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 ...
查詢演算法 二分法
二分查詢演算法的基本思想 一.首先確定該區間的中間元素位置 mid low high 2 mid代表區間內中間元素的位置 low代表區間內最左邊元素的位置 high代表區間內最右邊元素的位置 二.將待查key元素值與中間元素mid的值 array mid 比較,如果相等,則查詢成功,否則確定新的查詢...
演算法 二分法查詢
1 2 二分法實驗 31 設a 0 n 1 是乙個已排好序的陣列.4請改寫二分搜尋演算法,使得當搜尋元素x不在陣列中時,5返回小於x的最大元素的位置i和大於x的最大元素位置j.6當搜尋元素在陣列中時,i和j相同,均為x在陣列中的位置.72 設有n個不同的整數排好序後存放於t 0 n 1 中,8若存在...