1、查詢表是由同一系型別的資料元素構成的集合。
一般對於查詢表有一下幾種操作:
2、在查詢表中只做查詢操作,而不改動表中的資料元素,稱此類查詢表為靜態查詢表;
在查詢表中做查詢操作的同時進行插入資料或者刪除資料的操作,稱此類為動態查詢表。
3、關鍵字又細分為關鍵字和次關鍵字。
1、從表中的最後乙個資料元素開始,逐個同記錄的關鍵字比較。
**實現如下
1、二分法查詢def sequence_search
(array, key)
:"""
順序查詢演算法
"""for i in range
(len
(array)):
if array[i]
== key:
return i
return false
array_0 =[23
,43,12
,54,65
,48]print
(sequence_search
(array_0,12)
)
優點:
缺點:
實用場景:
**實現如下
1、在對問題求解時,總是作出在當前看來是最好的選擇。也就是說,不從整體上加以考慮,def halffind
(nums,key,low,high)
:"""
二分查詢
:param nums:查詢
:param key: 關鍵字
:param low: 索引值,一般為0
:param high: 最後索引值
:return
:"""
mid =
(low + high)
// 2
if key == nums[mid]
:return mid
if low > high:
return false
if key > nums[mid]
:return
halffind
(nums,key,mid+
1,high)
else
:return
halffind
(nums,key,low,mid-1)
if __name__ ==
'__main__'
: nums =[23
,34,2
,5,81
,99] key =
int(
input
('請輸入要查詢的關鍵字:'))
h =halffind
(nums,key,0,
len(nums)-1
(h)
它所作出的僅僅是在某種意義上的區域性最優解(是否是全域性最優,需要證明)。
2、最優裝載問題:
有一天海盜們截獲了一艘裝滿各種各樣古董的貨船,每一件都價值連城,一旦打碎就是去了價值,
海盜船載重量為c,每件固定的重量為wi,海盜們該如何盡可能裝載最多數量的古董呢?
**實現如下:
3、揹包問題antique =[4
,10,7
,11,3
,5,14
,2]def max_ans
(antique)
: antique_sort =
sorted
(antique)
ans,tmp =0,
0 #ans為古董的數量,tmp為古董的重量
ship =
#存放古董重量
for i in antique_sort:
tmp +
= i if tmp <=30:
ans +=1
ship.
(tmp)
('古董數量:'
,ans)
('古董的重量:'
,tmp)
('裝載的古董'
,ship)
max_ans
(antique)
假設山洞中有n種寶物,每種寶物有一定重量w和相應的價值v,毛驢運載能力
一種寶物只能拿一樣,寶物可分割。怎樣才能使毛驢運走寶物的價值最大呢?
**實現如下:
#datas中每乙個元素代表乙個古董,每乙個列表第乙個元素代表古董重量
#第二個元素代表古董價值
datas =[[
4,3]
,[2,
8],[
9,18]
,[5,
6],[
5,8]
,[8,
20]]#,[5,
5],[
4,6]
,[5,
7],[
5,15]
]m =
30 #毛驢的運載能力
w =0 #獲取的總價值
#計算出每件寶物的價效比,按照從高到底排序
for i in range
(len
(datas)):
price = datas[i][1
]/ datas[i][0
] datas[i]
.(price) #增加價效比
(datas)
datas.
sort
(key=lambda data:data[2]
,reverse=true)
for data in datas:
if data[0]
<= m:
w += data[1]
m -= data[0]
else
: w +
= data[2]
* mprint
('總價值:'
,w)
C 基礎程式設計DAY18
寫一函式,在一陣列裡查詢某個值 include include using namespace std intsearch int a,int n,int key else return 1 return 1 key不在a中,返回 1,表示該函式失敗 int main int key cin key...
python學習 Day18 異常
異常即是乙個事件,該事件會在程式執行過程中發生,影響了程式的正常執行。一般情況下,在python無法正常處理程式時就是發生乙個異常,異常是python物件,表示乙個錯誤,當python指令碼發生異常時我們需要捕獲處理它,否則程式會終止執行。異常處理常用形式 try 正常操作 except 發生異常,...
閉關日記 Day18
陰。好幾天沒更新日記了,說一下這幾天完成的事和正在做的事。專案f基本完結,專案b在除錯相容 360瀏覽器缺省會進入相容模式來渲染 練車 1號考科三 翻譯 uwp設計指南 當前進度1 時間碎片管理的uwp著手開發 專案t 另外,乙個學長想讓我幫忙做乙個h5小遊戲,在溝通中。target 003 時長 ...