|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 $ K. G5 ^5 j6 O% A) M
, V# B' E: n$ N6 z1 a# E6 ?7 ~8 h
实例- def search(arr, n, x):
7 }. y3 U3 N) t3 {, m0 B* @ - $ W; {& o! _2 ^) s, _
- for i in range (0, n):
' \* o9 ]; d3 T. |2 T3 e4 P - if (arr[i] == x):
( O8 S$ v+ D. H2 U3 p - return i; $ Q3 G, Z* m& ]! }
- return -1; / |5 Q3 J) l: ^& y8 h
-
$ z x1 G2 a# t* h0 m; s# y% H4 t4 G+ b - # 在数组 arr 中查找字符 D3 |! B. l u3 N/ [' a2 z
- arr = [ 'A', 'B', 'C', 'D', 'E' ]; % T2 [1 v! v% u9 a* J* |& b5 y
- x = 'D';
7 p$ x# u6 F7 B+ d, c - n = len(arr); 1 Z9 Y V$ Z3 d$ T8 [. s1 @$ x
- result = search(arr, n, x) 8 D+ A5 o" ~: e3 }
- if(result == -1):
9 A3 H5 x+ k2 \& w# b' ^ - print("元素不在数组中") 2 }4 z- b/ c) v) ?- W4 F4 W/ O
- else: & ]6 c# `) p$ y# T5 D$ A
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:2 f5 o7 ~& D0 p7 ~. G
5 X2 y9 n6 r+ K- d1 Q案例1:- def LinearSearch(list):
, V( D' U# a. t Z! P# M/ a4 Q) h) f - num = int(input('Number:\t'))
8 }6 k* W0 W3 Y0 k* Y1 t2 M2 `( u( B! X - counter = 0- G% F& t( P, l* A6 K+ ]$ T1 G
- null = 04 Z! h6 W- C, K1 i* }$ d/ Z+ _) N
- ! M! S' S+ S) o. q; Z3 \, c3 L0 j
- for i in list:" O! B2 B& [. q. Y# V! ?/ e
- if i == num:3 y) ~: u+ C B( t. b6 z- F2 ~
- print('Find number {} in place {}.'.format(num, counter))
5 M, K- ~ F1 x5 P$ ] Z - else:
4 P% J- }( C# s" T! y - null += 1
6 c) O& ]$ R+ c: N$ D+ h" p, h - counter += 1
' r; B o, t! G6 J& n - if null == counter:: s" e: ?" t0 Y5 K( F
- print('Don\'t find it.')& R; J/ m: W3 l0 e4 m2 T
- + a9 A f8 G! M3 B7 I i; [1 F, k+ y
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]6 v4 K: |# q) }7 @4 C& ?& z
- LinearSearch(list)
复制代码 案例21 w# ~, |. g* Q. |- V, B
- def LinearSearch(num=50):
! T$ Y6 x+ {- J5 i, D; C7 G R2 z - import random
' f& m( P( o/ ^0 X - random.seed(888)1 c/ l9 @; V4 L0 W$ H0 N* \
- data = []9 _- p# |1 t$ w+ C. R$ q
- for i in range(15):
, v" m; o1 T4 i& U4 Q. E3 e - data.append(random.randint(1, 100))
, }& H3 U4 z- W Z* p1 D - data.sort()+ l. [8 D: Q/ ~. S/ Y7 r- v
- print(data)
; M9 B! \& L: C0 _ - for i in range(0,len(data)):) Q/ S7 P4 z) ^
- if data[i]==num:7 k$ R2 |, ~' v0 N/ V" A
- print(i)
5 U2 ?2 L8 E0 Z- X - break
1 U9 ~) P9 v. e" y - else:
7 C$ f1 L# e9 j8 ^/ E+ M/ ~7 G0 Q+ j - print('查无此数'). c; c! O$ i& N# y6 @
- LinearSearch()
复制代码
+ M0 U# V( \! _. ?: N, r3 s% B- X5 f F {
|
|