|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 & u! A5 X+ v* Y5 k& {- l
! ?) m/ C& v5 h0 K; \
实例- def search(arr, n, x):
0 z0 `- i$ n9 @" {* j4 a, n -
' _: _$ Z7 U: ^# H Q7 j/ j - for i in range (0, n):
% r. D3 q' S: H1 h - if (arr[i] == x): ; q2 @) N+ q' _9 v, v1 e
- return i; 9 m; g* }+ k O6 N
- return -1;
# G+ E$ j- ^; x, g0 h( U -
- } p* V: W: E+ E - # 在数组 arr 中查找字符 D- C: Y( w: T1 V
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
' J0 O1 ^$ o/ V5 u - x = 'D';
% F+ u0 T% I, a! R, | - n = len(arr);
2 `" @% M: _( G1 e/ v - result = search(arr, n, x) / Q; L& P( a" _
- if(result == -1):
+ r9 p# ]7 C; y5 g) Y - print("元素不在数组中")
: r" d# E% c8 L) s; x - else:
+ w- U# E9 J) Z Z7 O4 T - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:- |9 N: |" z5 v8 @5 K, R7 b. O. h6 u9 e5 U
. `4 \ D P# E& @/ y0 D% ?1 R
案例1:- def LinearSearch(list):
$ _* A: m$ A4 S" w9 @ - num = int(input('Number:\t')); ] ] a- y9 {. T8 I( Y
- counter = 03 a+ y- H1 M! ]
- null = 0
# U/ E$ P5 k9 r
M; C A# ]! T- for i in list:
3 z% |2 f$ r! D- R1 `. }* { - if i == num:, V9 z( l1 k1 Y; [
- print('Find number {} in place {}.'.format(num, counter))
" N7 m/ G0 } M o9 U - else:
- {- b- e: n" B, g! A9 C3 T - null += 1
1 ~1 B8 k, f2 T4 p8 p - counter += 1
8 b7 N" S9 ]5 S- T - if null == counter:3 }' a0 \8 Z3 E# o: V8 Z# d
- print('Don\'t find it.')6 B: D7 |; b. a9 X
( q9 l, j1 h9 K+ r% P- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]$ A+ g4 O. w' ]' M
- LinearSearch(list)
复制代码 案例2+ V& w5 O# @/ q) e
- def LinearSearch(num=50):$ |, o, L. r2 W% ~
- import random
1 `6 O# o" P. o1 j - random.seed(888)$ L7 m6 w0 y9 ? I+ W
- data = []
' r' ~& Z" T9 u, A+ x/ G - for i in range(15):5 I( m1 g: u! p+ z& Y: `, m
- data.append(random.randint(1, 100))8 I2 T% z% J$ Q2 g ~
- data.sort()
+ X m; r* Y, n/ D+ H: Y2 W# M - print(data)
7 S& X3 |7 u, j# U: m& s+ }" g - for i in range(0,len(data)):
# K' M9 q" L! |6 i: r3 Z0 W - if data[i]==num:
0 b4 }1 p5 k' J) _ E* O - print(i)3 T5 G" U e+ W& k6 n0 J
- break- @3 ^0 H' k- v0 O
- else:
% l9 j9 ?. o$ t6 b - print('查无此数')( K2 z& P5 F* t- \1 B. x" l9 x
- LinearSearch()
复制代码 6 r% G5 o/ ~/ K. K
3 O$ `4 z. D/ {2 ^' q! A
|
|