二分法查詢 冒泡 選擇的Python示例

2021-08-22 04:26:39 字數 1427 閱讀 1034

二分法查詢

給定乙個排好序(公升序)的列表與待查詢的關鍵字,成功則返回其索引,失敗則返回-1。

def

search

(list1, key)

: left =

0# 設定列表左邊界索引

right =

len(list1)-1

# 設定列表右邊界索引

while left <= right:

# 判斷是否查詢完成

mid =

(left + right)//2

# 中間索引

if key > list1[mid]

:# 若條件成立,則key在右半部分

left = mid +

1elif key < list1[mid]

: right = mid -

1else

:return mid

else

:return

-1

氣泡排序
思路:比較兩個相鄰下標所對應的元素,如果符合條件則交換位置

def

bubble

(list1)

:for time in

range(1

,len

(list1)):

# time即迴圈輪數

for index in

range

(len

(list1)

- time)

:if list1[index]

> list1[index +1]

: list1[index]

, list1[index +1]

= list1[index +1]

, list1[index]

return list1

選擇排序
思路:從前往後,固定乙個下標,然後使用這個下標對應的元素和列表中其他的元素進行依次比對,如果符合條件則交換位置

![快速排序](

def

selection

(list1)

:for key in

range

(len

(list1)-1

):for index in

range

(key +1,

len(list1)):

if list1[key]

> list1[index]

: list1[key]

, list1[index]

= list1[index]

, list1[key]

return list1

氣泡排序,二分法查詢

lst 18,8,16,2,5,7 通過交換的方式.把列表中最大的值一定到最右端 for abc in range len lst 控制內部移動的次數 n 0 while n len lst 1 if lst n lst n 1 lst n lst n 1 lst n 1 lst n n n 1 p...

二分法 氣泡排序 選擇排序

二分法是一種效率比較高的搜尋方法 假設有乙個1 100之間的數字,你來猜這個數是多少,每猜一次可以得到三種 回答 正確 大了或小了。如何保證用最少的次數猜對?很多人會想到先猜50,如果猜大了,說明答案比50小,然後猜25.用這種方法,每次都可以將數字的範圍縮小一半,對於1 100之間的任何數,最多都...

陣列排序(冒泡 選擇 二分法)

氣泡排序 package day0310 public class bubblesortdemo bubblesort array for int i 0 i array.length i public static void bubblesort int array 選擇排序 package da...