|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 * f& f' a/ q5 V) ~4 y: v
, ]' I+ F5 K5 b; f
实例- def search(arr, n, x):
0 D, Z) C( W$ o& F5 f- H0 Y -
7 h+ q2 l8 L; H7 R4 Z ^/ H - for i in range (0, n):
9 o0 x' S( j# E- ^) A" {+ g8 C - if (arr[i] == x): 9 a6 Q% O7 \" E8 d9 O7 H, [
- return i;
( |& |" K3 f: Z7 b7 j3 E8 h; f - return -1; ; v) S( s- k- \' p
-
7 I! n( K9 ]% B# k( v - # 在数组 arr 中查找字符 D- b; y* P# z+ Y
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
& R6 |$ }; H5 G& K3 q, ` - x = 'D';
6 Q) u) M6 N, Q# ~% e- ^+ B - n = len(arr);
* T2 k. p3 B" ?* K% d0 D/ Z6 l8 d - result = search(arr, n, x)
* R2 P( ]9 g4 _- ~8 L' Y4 R - if(result == -1):
4 i9 b) @; i8 [5 V$ i3 G9 _6 y - print("元素不在数组中") 7 m' Z3 W% S0 R' F! i' I6 J: x' k
- else:
7 A a, J, p- @/ t6 n - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:& @9 {# N1 V) `9 V0 L6 d5 j3 w
5 f) n9 D& H1 h' l& Y+ o
案例1:- def LinearSearch(list):
: P2 e: W/ c# H, e+ r - num = int(input('Number:\t'))
; A3 p1 E% C9 ]; t0 u0 u - counter = 0
+ d+ t% [/ i B+ c; [3 _ - null = 03 R- P- i8 X1 N# `
- ) v( @- u& D( N( e( |+ @/ V) Y7 K
- for i in list:
" i O+ H7 {9 A: c. b - if i == num:
5 n' T9 }2 I, f- J+ |6 R E. H - print('Find number {} in place {}.'.format(num, counter))( p: l5 _. o8 {$ |! H
- else:
: ]8 {( D& s! r P) X - null += 1. ~, X/ P% j& m+ |6 q2 g
- counter += 1
) G) k+ n3 T4 s: ^3 W8 U - if null == counter:
/ }7 W( G; X, N ?% p3 o5 | ^" I - print('Don\'t find it.')
- |3 K1 T& ?1 y3 t; }) b - # F* T/ [' h5 I( O
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
* F5 Y6 B2 m* m6 Q7 [9 h- [ - LinearSearch(list)
复制代码 案例2 f) ^- m E1 V6 J$ V$ i9 x
- def LinearSearch(num=50):
' U* m7 K, I) ] - import random: k: ^' o V5 z5 _0 X, F
- random.seed(888)# s, P# r+ p+ ~6 Z# G* ^9 j
- data = []6 k( ?0 @+ p% r& u9 |
- for i in range(15):
) W/ V! f$ t7 G7 V% y6 @2 t/ H - data.append(random.randint(1, 100))8 F9 u/ O, n% I4 `6 y7 L+ r+ X6 p0 R
- data.sort()& r K2 T1 K- ?% ~3 W' d2 }
- print(data)
( R2 {7 H. h/ V" D8 J7 p - for i in range(0,len(data)):. H+ ~& `4 z! X8 U0 T% ^5 l8 D
- if data[i]==num:
$ d' g9 V. h9 e1 h$ B H; n - print(i). f5 F# t9 Q: a+ v
- break5 Y0 T3 y9 M- H c S
- else:% @: ?8 W5 h) M1 \
- print('查无此数')' ~ v5 p! V) y6 l$ W5 G
- LinearSearch()
复制代码 ; r0 w: K4 [! _. N0 J$ p, O
" t% {! |. H! ^; l
|
|