|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
* Q6 b4 H7 b* [; I% v
+ u, g' z6 K0 ~4 t4 H) f实例- def search(arr, n, x):
9 k5 l% @0 c; L$ Z$ g -
+ s! ^2 X) S# t! ? - for i in range (0, n):
+ P* ]# e% z( C8 W. J - if (arr[i] == x): , O2 u6 ]: z9 `: S8 o, G- F: s. p
- return i; 2 C- G4 V8 w2 ?* Y- C
- return -1;
8 ^0 G5 |7 W J% V+ U8 h -
2 c% N& w; r7 T, d6 ^% |$ }8 B6 n' l - # 在数组 arr 中查找字符 D, q% ~ o. h$ X, O$ ?& \: B ~) M
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
4 g" ?7 N) j4 | - x = 'D'; 9 l3 A# Z1 ^: ^9 Z8 n
- n = len(arr); 5 n0 E1 J- s; c
- result = search(arr, n, x) 0 U; l) a6 |' L: K8 ?
- if(result == -1): \ X8 A8 N' n' V; C z6 j- f; n
- print("元素不在数组中")
, _9 q+ e5 g: l, `* p5 }% }& }; z - else:
3 H$ |: a2 |" \4 w& E% O - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:1 b1 R& _4 e" z
' X$ W+ I" Z, d* t. T7 p案例1:- def LinearSearch(list):$ s* y- G" f, Z4 |. l" A
- num = int(input('Number:\t'))
: W- Y! M; L+ v f* G% ^ - counter = 0
# @0 U" }6 o1 v - null = 0
4 W3 j0 n8 f' N9 J0 J& `. i; N - . l$ b8 V" n- L, m) C
- for i in list:
! z' k* ?5 Z6 y4 I7 p U) K - if i == num:
' F6 ]6 R/ L5 c1 n% r# ] - print('Find number {} in place {}.'.format(num, counter))
: J; ^) k/ {4 j) I3 K - else:
5 O0 @* \; W( I5 T' C+ }& t - null += 1( l, |9 h Z T+ \% T+ U
- counter += 1; d7 y3 q) S6 x* J& h" k
- if null == counter:% c/ c5 D+ |' }" I8 Z" q& l
- print('Don\'t find it.')
Y8 @( P8 Q/ E: j! _
d% y7 \! g2 c; h6 b, \- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
% I4 Q9 Z4 h+ M8 y6 Z% a! Y - LinearSearch(list)
复制代码 案例2
$ ?* n6 ?0 d* w/ q' }! \ e6 w- def LinearSearch(num=50):' E3 y* J- g! I0 \1 ^! i1 N% X/ i
- import random" ]6 L+ _& H, O/ X h$ k
- random.seed(888)8 |3 A4 v1 X r( b2 W
- data = []
: L7 G* _* ]) a1 Y* d" ?6 T - for i in range(15):! w0 `9 F" x9 p" g' f6 w
- data.append(random.randint(1, 100))
* [5 r% N( |6 N0 p$ M - data.sort()
! \& d* \2 q. N( q8 M - print(data)
% n. ]1 y$ x. O' V) T, X3 B - for i in range(0,len(data)):6 n9 _' M, c" T
- if data[i]==num:) O& R- M0 z' o: [9 B
- print(i)% m: a X+ m4 Z+ a' d+ C
- break# \8 I- W# l0 D
- else:
/ M) V: W3 R& B( d" P - print('查无此数')
/ {! k' v8 N1 K9 K2 H; D7 I - LinearSearch()
复制代码
. ]* X7 f% q' {* V/ v! k$ Z8 S
4 r4 |- n: y) C. o3 k6 A- a, s' Y8 }0 x# | |
|