|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
" c1 t+ `% g7 P9 V% Z! Y: p
. m4 c7 N0 ?( E+ Y* {
实例- def search(arr, n, x): ( Y7 _; z7 t; c3 e. k- A
- $ ~) q8 O. P- X" n
- for i in range (0, n): & w/ Y) N8 Y0 t) N2 J' U, E
- if (arr[i] == x): ) S$ w/ O0 a( b, A( v6 T
- return i;
+ j- g+ `. G" ^ - return -1;
! `' c* x0 c( l1 I, `. ] - 3 u! F2 _, V, J
- # 在数组 arr 中查找字符 D% T" Y/ i2 U8 Z% p7 }" ~0 \
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
4 Z6 f4 y* q* c; y9 ~ - x = 'D'; ' @+ s3 q& {( |
- n = len(arr);
% k9 L- A7 K- {& ^% O - result = search(arr, n, x) / f6 n, O/ i3 V' H8 {
- if(result == -1):
9 h: U3 R' n! y. b; E - print("元素不在数组中")
7 e2 {3 b( L! \+ N: B - else: 3 `$ \! o% ~. ~) }
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
$ V; u4 p: c' S1 {5 ]7 ^4 \) ~5 |% |: o0 H! X# ^' U* F
案例1:- def LinearSearch(list):
& t8 `' `- B0 P$ i - num = int(input('Number:\t'))
% g2 [3 |! v+ b! |$ ? - counter = 0! H. T* a; h# }/ I
- null = 0
* h& p y& ~/ s# N7 E2 e4 x - 6 y8 R6 P1 u$ D! g& J7 Z" \
- for i in list:
5 i3 p, M' q% t$ D# d( K - if i == num:2 K7 K0 X% j' E+ P2 w& n1 `
- print('Find number {} in place {}.'.format(num, counter))$ i/ U( f: z2 } X+ ^5 M
- else:
5 d; ^9 M/ B& P. Z( ~6 u - null += 1# d- {2 B2 @, j
- counter += 11 l* z/ k" F% t7 S& L. W
- if null == counter: \! \+ i( p' U$ P5 ?3 v! ?
- print('Don\'t find it.')% \* F* i1 U4 B- T& `8 u0 E
- 7 @0 E: W5 G; b9 X% i' X
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
6 S4 t4 Y5 a9 p) i2 m, Q - LinearSearch(list)
复制代码 案例2
# m [4 e8 e$ }& ^- def LinearSearch(num=50):2 ]. |. B: d1 S9 N- t1 C" |
- import random. Q( W" _" j! Z1 Q$ b+ \6 ?
- random.seed(888)" Y! |9 u! Q/ ?, [2 ?
- data = []7 M; h, e5 I7 h
- for i in range(15):
2 M- m& e E3 D8 d, B5 Y - data.append(random.randint(1, 100))
3 m' r/ {% _( Y" B# E) C - data.sort()
& g3 U. o' S- L% p - print(data)
: q/ v! B( m+ Q) x$ [ - for i in range(0,len(data)):
& N4 q, s7 J2 Y. o, |0 W& n - if data[i]==num: h9 f+ Z f9 r- Z; B5 n
- print(i)( L7 O8 c4 ? s' s
- break. }0 w, a* D6 M8 o( c1 ~: _6 J( F% B
- else:+ t4 p# C' F5 i: g0 O
- print('查无此数')
) I3 }( ?, ^: h5 @ j - LinearSearch()
复制代码 5 ?' T5 {& o, x3 S
! a& r1 `: J4 R
|
|