|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 $ L( W4 w$ f$ }/ z0 i+ ^8 @) A" S# j, V! U
8 P, Z! t$ s* S& g* C6 ?8 P4 G实例- def search(arr, n, x):
# u) u* s7 w" |8 I; ]1 h1 { - 8 }3 b+ \ d0 c7 x' U# ?# w; A9 Z
- for i in range (0, n): . Z& r M0 D+ h+ n2 V8 w U
- if (arr[i] == x): 1 ^7 j: N7 f, p" l
- return i; e6 V2 B0 `- _$ a7 \! k" J% r; B; y X
- return -1; $ f i3 w% }7 Z1 ~0 }
-
8 h3 [6 m+ F+ g* q% i& f5 D: k - # 在数组 arr 中查找字符 D
+ D6 ]. ?3 V; d% @2 i - arr = [ 'A', 'B', 'C', 'D', 'E' ]; ) l+ I! M: f! c- V8 k
- x = 'D';
( w" _" h& i! [- d, S - n = len(arr);
. M1 k: D+ c; l+ x2 q/ m - result = search(arr, n, x)
; L- V9 n9 y3 Q, Z/ C- a - if(result == -1):
/ L( B" S: Q1 ` - print("元素不在数组中") & d. h2 ~/ u6 c j; Z. e% X
- else: 0 K4 B/ O5 h+ N! h2 Y6 c+ ]
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
\+ E- o: J% o+ d% E& y, @, ], o$ q* _2 |
案例1:- def LinearSearch(list):
9 n! Y5 `% C4 D8 g - num = int(input('Number:\t'))
+ H g/ |) E# V3 e - counter = 0
! `2 N) |# Y& ^3 `# F' R6 N2 q0 ^ - null = 0. U( d! ^5 o; Y s! q/ o+ L' g$ r
% I6 F" t6 _: F7 l- for i in list:
) S: t/ Z0 h* L5 O - if i == num:, s& Q1 r) _; ]$ S! i1 v- S! E5 z
- print('Find number {} in place {}.'.format(num, counter))
. y$ ~, f3 A7 c3 h$ Y: l, c; T$ v - else:" V% l; z& V" S" G4 g% } S* a8 A
- null += 1
3 K$ U* M7 C0 |/ E8 C - counter += 11 `% M# q. k7 _- ?4 h Y
- if null == counter:8 R% f( y& K1 Z3 Y& w2 d9 V
- print('Don\'t find it.')7 c& d* s' ~& C9 O9 W9 q0 F7 ?
- $ o+ A8 |3 T: l! M( l
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]- e( o7 l9 C" N. N* c
- LinearSearch(list)
复制代码 案例2
+ G& m g7 f5 [$ O# a- Y' D- def LinearSearch(num=50):, s0 d1 D/ b* P2 Y& j3 r. i2 X
- import random
4 y, ^" M2 p- g: ` |9 E - random.seed(888)
, |4 Z0 s3 \" C" f" ]6 D X - data = []7 X% O. K& N$ G7 t9 m
- for i in range(15):
! g. n- _4 k5 R9 _! T% b1 t9 P9 p% e - data.append(random.randint(1, 100))7 n B& T8 V" o1 Y2 a
- data.sort()
6 e1 Z& N4 V# |+ A$ y' F4 V; V8 k t' h - print(data). u- v6 c" y8 z0 l) V: N9 B1 p
- for i in range(0,len(data)):
8 s3 b! e8 S& l: Z. t! G! o: w - if data[i]==num:2 Y; i% V) E, H, I6 B
- print(i)4 ]/ q3 D6 b, |7 G% @4 ?- T5 |1 g# j
- break
* |/ j! G! R% x - else:
; A: S5 E3 L- w9 n | - print('查无此数')
9 ?# f+ i$ J& E A - LinearSearch()
复制代码
8 o% ]& Y1 Q& y4 b" {4 }$ y0 G: n9 j' _5 ~# J8 J
|
|