|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
3 P' A$ T) U2 D
8 r0 `" W( m1 M3 {, {* A
实例- def search(arr, n, x):
% U$ F) L+ {5 O+ z. W) ]* [ - 9 y+ n! g7 l0 h5 R3 V6 V
- for i in range (0, n):
( S) _; U/ h4 X: G8 m+ B# k - if (arr[i] == x):
3 a: Q8 V: _8 p+ @6 ^9 p - return i;
0 L3 g' l( B" z1 U - return -1;
% O1 E, S5 }' m# B: h e2 W( y - 5 h0 d; c# s3 p' a. B3 |
- # 在数组 arr 中查找字符 D% s! o0 _+ n* n% x0 p3 {! E
- arr = [ 'A', 'B', 'C', 'D', 'E' ]; ) h9 s( k$ W7 l: H
- x = 'D'; . U: m2 R/ V% K, X4 T8 f
- n = len(arr);
, [: \: \0 H6 W- a {& s6 K$ \ - result = search(arr, n, x)
" t8 l, `. Q0 a3 G/ v/ t L/ G - if(result == -1):
$ r1 y( e2 {( l5 c - print("元素不在数组中")
% U" l* M& w' ?: T6 E - else: ! w9 }% q {$ \8 _; X) l
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
4 I; {" T' H5 i+ Y" s* z+ _3 [7 {' b' ?
案例1:- def LinearSearch(list):
; \# u8 Z6 C3 L3 _: k# b+ N - num = int(input('Number:\t'))+ E4 h7 H* Z1 \; }( @
- counter = 0
( `5 A1 @9 E# o$ y3 w0 b - null = 0, o( q* I r8 D
- ~1 a% l9 s5 O
- for i in list: H" q. T+ p- D1 m# u' V! v m2 [
- if i == num:- b" j: J# ?6 v$ [0 u7 ?0 v
- print('Find number {} in place {}.'.format(num, counter))
: Y& F# b; h) D/ n. N" \2 q6 i - else:
' n+ [+ |& s. o, |# ?# U - null += 1) X) [ \# c' C
- counter += 1 p4 {( q4 a1 E& I2 }
- if null == counter:
* X8 B: e4 f: ]4 ? i0 A - print('Don\'t find it.')
: i" ~* T+ L6 I - % ^+ j" T% r5 ?) C! r8 a( b' M* {
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
. U3 C; s5 |* I, M - LinearSearch(list)
复制代码 案例23 {. j# d/ v% n
- def LinearSearch(num=50):
# X) K6 P: Z, S - import random! {. X6 P- e! C
- random.seed(888)5 Y1 f% P# [( |: m+ o- a9 j$ q
- data = []9 t4 j0 c3 c4 Y f4 m0 _
- for i in range(15):
$ U/ \/ v0 l: c! ], x6 Y0 B - data.append(random.randint(1, 100))
" Q# B. q/ l( w- x: U9 x4 U - data.sort()8 z- E8 N1 `$ e, L- T' y4 _9 _- _# q3 t
- print(data)8 Z" [" Z4 G& x6 e' w' R0 r
- for i in range(0,len(data)):5 J% R" ~0 n8 |% t
- if data[i]==num:
( U3 j a% |- O - print(i)6 H1 i5 ~1 y4 q6 U8 h/ A ?
- break
+ J; o4 h( q7 T+ Z - else:- ?* Y) {9 |/ \6 K
- print('查无此数')+ t7 N! Q' X; m# u5 Q+ J/ I5 n0 o% b7 |
- LinearSearch()
复制代码
: \* {" s1 V L$ O
& z9 s& _) I T5 ?% o& b) r) o |
|