|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
, u! |; t. [% G" f* [: R0 p/ ^
/ @$ U* \9 p$ S. z) X6 u+ h9 v% r实例- def search(arr, n, x): 1 D7 M: I% l) c# G
- # V$ g* f' h6 w8 d# b
- for i in range (0, n):
3 o3 p2 s; @0 | - if (arr[i] == x):
, K' U3 n" T1 u+ K' c - return i; 1 L/ k; b0 x% m; M* n( b
- return -1;
% {: i) c- ?3 f1 n - 7 |2 _, A. r) z# B
- # 在数组 arr 中查找字符 D
6 Q4 s3 u- u" [4 p# f - arr = [ 'A', 'B', 'C', 'D', 'E' ]; # D# p% u: b. t" X, J1 L
- x = 'D';
$ ~$ ~3 ~7 l9 J - n = len(arr); 5 b2 M, Z3 `3 P. H/ V: l
- result = search(arr, n, x) . u* N2 |: s5 c& _0 K: Q. \8 i- V0 p
- if(result == -1):
5 T$ c' ]& m4 t - print("元素不在数组中")
W9 u. E6 G6 z' D4 M - else:
) M2 c+ F: H* Y! p$ b i S - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
( p- _0 P7 I8 ]+ ?
# `* [- K, k. h E, X" i4 K案例1:- def LinearSearch(list):& j5 n" _' f+ Y. V- ]
- num = int(input('Number:\t'))
6 C# t7 ^) Q5 h( f6 A% q: P/ L - counter = 0
+ V5 t5 o. f! G% O% S - null = 0+ B5 R/ e' ~& v7 ~
; o, ?' n% n' y V2 g, [- for i in list:7 T- p$ y5 x, h9 `! W- p. t% I* B
- if i == num:
* P& R! ~5 B1 z' E- P* c; W3 M; a - print('Find number {} in place {}.'.format(num, counter))
) p4 V1 e1 A% v' K7 U ?6 V - else:
; U! ~- D% Z$ i( \ - null += 1
# |' y! Z, H+ I! c8 I - counter += 1, p1 ]) F4 r' Y( F
- if null == counter:
( [* d: [/ J1 {1 I& f5 ]8 C - print('Don\'t find it.')0 f% o- K6 @8 \' s
4 L2 C$ U+ ]$ j g- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]3 M- C3 L7 E: d) @* f9 R- D3 v! @
- LinearSearch(list)
复制代码 案例25 g, s, N# ]2 \3 @: R% R
- def LinearSearch(num=50):2 o' P0 L8 L* x8 _$ `, v$ _
- import random
7 Z1 _& d x3 D# T& Q k - random.seed(888)6 z6 F7 ?3 Q" U
- data = []! F) l K5 X' }
- for i in range(15):# _$ ^: d, z2 n/ h$ Z
- data.append(random.randint(1, 100))3 @* n `: D/ A! F/ @( W
- data.sort(), K5 ~6 p W0 O" g5 X2 p- H
- print(data)8 e: c( K5 y& t( `2 Y2 o3 c
- for i in range(0,len(data)):
: R" `6 k. ^+ J: B1 J - if data[i]==num:
% |; M0 N! b8 H5 t$ ?4 z' V/ q - print(i)
9 ]% h' g, d) P+ k& D/ l" i' Z1 F - break
0 l1 v z: A3 ]/ X d - else:/ `) z7 h: q% K9 v" r1 G7 F8 s( x) r
- print('查无此数')7 k2 U( K9 T1 m% B1 J+ t8 Q
- LinearSearch()
复制代码 + o' Z; O _* B7 E1 z: G# @
c1 ~/ u3 M% r- N% _% }- a+ b a |
|