容器查詢:要乙個乙個遍歷。
資料結構和演算法:樹,圖,排序、查詢
import builtins
dir(builtins)#檢視異常,全域性函式
( list.sort() 方法只是為列表定義的,而 sorted() 函式可以接受任何可迭代物件。)
ls = [3, 2, 1, 56, 77, 21, 4357, 765, -232, 0, 99]
ls.sort()#公升序排列
#ls.reverse()#倒列表實現降序
print(ls)
``
排序演算法:氣泡排序、選擇排序、插入排序 、
'''
ls富2021/1/18
氣泡排序
'''#公升序(查詢最大次數為列表元素-1次:恰好降序)
def asending_sort(ls):
for i in range(len(ls)):
#在乙個迴圈,進行比較次數
for j in range(len(ls)-i-1):#-1是防止下標越界,由於i增加,比較次數可以減少,增加效率
if ls[j] > ls[j+1]:
ls[j],ls[j+1]=ls[j+1],ls[j]
print(ls)
if __name__ == '__main__':
ls = [3, 2, 1, 56, 77, 21, 4357, 765, -232, 0, 99]
asending_sort(ls)
降序:
'''
ls富2021/1/18
氣泡排序
'''#公升序(查詢最大次數為列表元素-1次:恰好降序)
def descending_sort(ls):
for i in range(len(ls)):
#在乙個迴圈,進行比較次數
for j in range(len(ls)-i-1):#-1是防止下標越界,由於i增加,比較次數可以減少,增加效率
if ls[j] < ls[j+1]:
ls[j],ls[j+1]=ls[j+1],ls[j]
print(ls)
if __name__ == '__main__':
ls = [3, 2, 1, 56, 77, 21, 4357, 765, -232, 0, 99]
descending_sort(ls)
選擇排序:(每次查詢找到最小值(或最大值)和後面交換:
'''
ls富2021/1/18
選擇排序
'''#公升序(查詢最大次數為列表元素-1次:恰好降序)
def asending_sort(ls):
for i in range(len(ls) - 1):
# 記錄最小數的索引
minindex = i
for j in range(i + 1, len(ls)):
if ls[j] < ls[minindex]:
minindex = j
# i 不是最小數時,將 i 和最小數進行交換
if i != minindex:
ls[i], ls[minindex] = ls[minindex], ls[i]
return print(ls)
if __name__ == '__main__':
ls=[22,1423,4,676,7,78,78,124]
asending_sort(ls)
插入排序:(根據開頭二個排序,匯入後面的數,與前面進行比較,找到位置進行插入)
'''
ls富2021/1/18
選擇排序
'''#公升序(查詢最大次數為列表元素-1次:恰好降序)
def asending_sort(ls):
for i in range(len(ls)):
preindex = i-1
current = ls[i]
while preindex >= 0 and ls[preindex] > current:
ls[preindex+1] = ls[preindex]
preindex-=1
ls[preindex+1] = current
return print(ls)
if __name__ == '__main__':
ls=[22,1423,4,676,7,78,78,124]
asending_sort(ls)
查詢:從有序資料中查乙個特殊位置。
查詢方法:二分查詢(折半查詢:保證有序,1,找到中間數(進行比較,選擇一邊),再迴圈上面操作,找到需要元素(元素越多,效率越高))
def binary_search(ls, key):
low = 0
high = len(ls) - 1
time = 0
while low < high:
time += 1
mid = int((low + high) / 2)
if key < lis[mid]:
high = mid - 1
elif key > lis[mid]:
low = mid + 1
else:
# 列印折半的次數
print("times: %s" % time)
return mid
print("times: %s" % time)
return false
if __name__ == '__main__':
ls = [1, 5, 7, 8, 22, 54, 99, 123, 200, 222, 444]
result = binary_search(ls, 99)
print(result)
vector向量容器元素排序與查詢
include include vector vec 比較函式,這裡的元素型別要與vector儲存的型別一致 bool compare int a,int b std sort vec.begin vec.end compare 注意 sort 函式原型申明如下 template void sort...
查詢與排序
分治法求最大連續和 include include using namespace std const int maxn 1e5 5 int a maxn int dfs int x,int y return 1 二分法非遞迴 int main a j 1 t return 插入排序 int mai...
排序與查詢
將要處理的資料都載入到記憶體中進行排序 交換式排序,選擇式排序,插入式排序 資料過大無法全部載入到記憶體中,需借助外部儲存器 合併排序,直接合併排序 略直接找值,一般 index 1,借助index的值確定有沒有找到 推薦 略記憶體存在形式 重點 定義時初始化 var arr3 2 3 int 2 ...