python 二分法,氣泡排序初學教程

2022-09-24 01:33:07 字數 1230 閱讀 7591

python-二分法,氣泡排序初學教程

python

目錄氣泡排序

二分法查詢

主要是拿乙個數與列表中所有的數進行比對,若比此數大(或者小),就交換位置

#encoding:utf-8

l=[5,3,6,2,1,4,8,7,9]

for j in range(len(l)-1):

if l[j] > l[j+1]:

l[j],l[j+1] = l[j+1],l[j]

print(l)

二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好;其缺點是要求待查表為有序表,且插入刪除困難。

此方法適用於不經常變動而查詢頻繁的有序列表。

首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;否則利用中間位置記錄將表分成前、後兩個子表,如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。重複以上過程,直到找到滿足條件的記錄,使查詢成功,或直到子表不存在為止,此時查詢不成功。

例項:#encoding:utf-8

l = [1, 2, 3, 4, 5, 6, 7, 8, 9]

find_num = int(input('請輸入乙個數字:'))

start = 0

end = len(l) - 1

while true:

middle = (start + end) // 2

if find_num == l[middle]:

print('找到了!索引是:', middle)

break

elif find_num > l[middle]:

start = middle + 1

elif find_num < l[middle]:

end = middle - 1

if start > end:

print('沒找到!', find_num)

break

**-yort2016

單詞:project 專案

description 描述

results 結果

task 任務

allows 允許

will 將

support 支援

mapper 製圖人

midpoint 中點

dichotomy 二分法

answer 答案

report 報告

氣泡排序 二分法

核心 掐頭去尾取中間.一次砍一半 二分查詢.每次能夠排除掉一半的資料.查詢的效率非常高.但是侷限性比較大.必須是有 序序列才可以使用二分查詢 兩種演算法 常規迴圈,遞迴迴圈 使用二分法可以提高效率,前提條件 有序序列 lst 22,33,44,55,66,77,88,99,101 238 345 4...

二分法和氣泡排序

先放乙個 可以看到冒泡,選擇,插入排序的過程 冒泡 選擇 插入排序 前言 二分法是乙個優化演算法,在乙個基於有序列表中,列表從1到10000,如果要找乙個8899的數字,不用二分法的話,就是迴圈從一到10000,直到找到8899.但是,有沒有想過,前5000個都比8899小,所以能不能直接第一次就判...

氣泡排序,二分法查詢

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...