|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 . T' M& i2 E2 n8 H4 F, Y; G# ~
% G7 e! v% n0 ~" I; s& U
实例- def search(arr, n, x): / f8 Y/ a. M( ^
-
5 y: O6 W! H/ O0 t - for i in range (0, n): 0 j% z$ B9 X$ F
- if (arr[i] == x):
6 j$ S. j$ r- V, v& f. C0 J- t! A - return i;
& s$ E/ Q. P3 h _ - return -1; ; \* _4 r/ I: q" J y. r
- ) e& K* k, y; v+ |7 m
- # 在数组 arr 中查找字符 D
$ y$ S' P: g; ~ - arr = [ 'A', 'B', 'C', 'D', 'E' ];
9 `+ X1 d i2 x( m" k+ e - x = 'D';
" Z) _" S- o y3 W( s# o. ]) z f - n = len(arr);
4 i' W" ?1 t3 h( @4 O - result = search(arr, n, x)
& l' X# O+ F5 m9 j - if(result == -1): 3 [, D. [" P6 c1 V9 A+ u* R
- print("元素不在数组中")
5 _- e; R% B% N! B1 k& ~7 }, q* j. a - else:
7 h0 |2 }2 V6 k; a8 W: S5 e - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:) l- }2 T( H2 z- E& u
" Y' {- z; A+ h. Y4 T( a( G案例1:- def LinearSearch(list):! m& A5 u5 @% j8 ~: ]
- num = int(input('Number:\t'))
* C& k; Z! V8 B - counter = 0# T# R9 Q& I. V5 l# d- ^* X
- null = 0* C$ k( |( E# x" }# S$ K
6 X7 L( q7 c" g- for i in list:4 W8 A) ^' L$ P7 G1 _+ s/ F) {
- if i == num:
b3 r+ A- D" y: k6 | - print('Find number {} in place {}.'.format(num, counter))
`: T( \& s( c7 D4 y - else:
! C+ z: J! P" z: w - null += 1
' U- U% e' ~- d& l7 j, q- B" F4 P1 ? - counter += 1
, W E1 ~" f, g- F! _5 a - if null == counter:
/ V+ q: z% ?/ e+ A/ p, |! w; n7 R - print('Don\'t find it.')
. }8 J# y9 ~) y: w7 \
1 T9 f4 E3 p! v# L" l+ u- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]7 M) L, p7 w3 i! J& {. ^' N
- LinearSearch(list)
复制代码 案例2
# ]( |8 P @4 H2 V) V y$ ~- def LinearSearch(num=50):6 s; X- H+ Z6 {$ b# c& X
- import random+ r L$ K y5 a a# r: @/ H" f" l
- random.seed(888)5 [; o& {$ [( z( ]1 X
- data = []
5 V* u6 B: r$ j - for i in range(15):
/ d5 C3 }% o* G+ J) ?2 w+ ] - data.append(random.randint(1, 100))
1 C$ Y+ I& d6 p2 q J/ E" \ - data.sort(). {1 q0 U; e( R
- print(data)
9 P ^5 @- c, z+ V9 @/ o - for i in range(0,len(data)):
+ _- z/ ]! C) Y6 z& B3 z7 S - if data[i]==num:! r. L: \" T+ g4 J+ ^
- print(i)6 a6 y# J* o4 }: |* ?
- break/ l5 B% V' t5 S; ^4 N6 W L
- else:
/ k O! T( T- K* X g6 r - print('查无此数')+ v) o* O$ h6 o
- LinearSearch()
复制代码
+ @) v# e$ D$ }2 J4 v% |5 j O! q; b2 e
|
|