從原理上看,查詢演算法很簡單,其核心就是從某個陣列中找到某個元素是否存在,如果存在則返回true,不存在則返回false。
順序查詢
無序列表的順序查詢
順序查詢的思想就是從頭遍歷到尾去找到列表中是否存在要查詢的元素,當我們進行查詢的列表是沒有大小順序的時候我們只能把整個列表都遍歷一遍。
**的實現方式如下:
def
seqsearch
(alist, item)
: pos =
0 found =
false
while pos <
len(alist)
andnot found:
if alist[pos]
== item:
found =
true
else
: pos +=
1# found = false found = true
return found
seqsearch([2
,6,4
,2,6
,7],
8)
有序列表的順序查詢 有序列表和無序列表進行查詢的主要區別就在於停止條件,因為列表的有序性,所以當我們搜尋到列表中的元素大於要查詢的元素時便可以不再往下進行查詢了。
**的實現方式如下:
def
seqsearch
(alist, item)
: pos =
0 found =
false
# 加入乙個停止判斷器,當前數字大於item即停止
stop =
false
while pos <
len(alist)
andnot found and
not stop:
if alist[pos]
== item:
found =
true
else
:if alist[pos]
> item:
stop =
true
else
: pos +=
1return found
seqsearch([2
,3,4
,5,6
],9)
面試必備的排序演算法小結
排序演算法很容易被忽視,因為sort的存在,排序演算法不管是在面試還是競賽,都是很關鍵的演算法,所以今天整理一下。重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。void bubble sort...
順序表的順序查詢和折半查詢
順序查詢 include using namespace std intseqsearch int r,int n,int k return i int main int k cout 請輸入要查詢的數 k for int i 1 i n i cout 該數在陣列中的位置為 cout seqsear...
實現順序查詢的演算法
include define maxl 100 定義表中最多記錄個數 typedef int keytype typedef char infotype 10 typedef struct nodetype typedef nodetype seqlist maxl 順序表型別 int seqsea...