|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 * O+ c; ?" }2 o2 N' @" m6 S
, g: m) L4 \ X, N6 T H9 s实例- def search(arr, n, x): P$ Y& t8 M$ T( t
- ) q4 {: b8 Q/ x) K, ~
- for i in range (0, n):
- r7 x& |" S2 q/ _ - if (arr[i] == x): $ s1 h( f# W/ n
- return i; * l* ^ k5 {3 N7 f$ ?9 n) t6 p+ @
- return -1;
1 U$ A! b% L5 z% ~! I -
/ s/ P4 O4 O# t - # 在数组 arr 中查找字符 D
( f" W3 h1 n- X* V5 B - arr = [ 'A', 'B', 'C', 'D', 'E' ];
" s" n' }. [3 }% l* m a ^ - x = 'D';
& }/ S) c ^0 V% R - n = len(arr);
4 z' u; V/ [/ Q/ A0 V3 b( b - result = search(arr, n, x) , u% v& Y) A" M6 A
- if(result == -1):
' ?) V7 s; c$ j5 n1 H7 u: Q - print("元素不在数组中")
# C( w' \3 G- P2 M! j - else:
2 u( K4 w, s: `& \) E& i; ^0 k+ n - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:: {1 @" D) E0 S4 Q2 o( u
, T! g' l& E1 g, i案例1:- def LinearSearch(list):
9 K' Z! U' V8 {: v/ c - num = int(input('Number:\t'))
- Y1 h8 V, S% y4 O$ X# E- W - counter = 0- M b/ q5 C$ f( A- a
- null = 0, C: W2 o/ A. T( F
8 W7 f1 p7 m# ]4 L/ [- for i in list:
6 n% R8 m5 d' s( r! c. Z - if i == num:
8 F# G+ c5 ^ P( J) Q - print('Find number {} in place {}.'.format(num, counter))
% e6 B4 L) K" E$ U. q( E. l! i - else:
+ V8 I( c- I8 H! Z3 q% y - null += 1
4 q2 P/ B& L' b1 ?/ D- U - counter += 1
) L6 b' r9 k% b$ l* {5 C9 j - if null == counter:: L" n) k$ K/ S
- print('Don\'t find it.')
! g1 y9 n! x8 X - 2 s' N& a) ~- Q [6 I9 a
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]7 k( `; x- q4 r6 ?, |* n
- LinearSearch(list)
复制代码 案例2( p( |$ x- j8 I
- def LinearSearch(num=50):8 V, W; J0 W2 j% f6 I2 D' o4 E) |
- import random
! X, e3 c) s/ y) B# s - random.seed(888)
3 U& A Z$ W. U8 c) { - data = []" @0 q$ ~5 K0 i. n2 Y; k( H6 u U
- for i in range(15):3 c# Z( `7 Y: ? ]+ r
- data.append(random.randint(1, 100))
" F' S3 ?& ?8 [ U1 e - data.sort(): O) j/ l# O6 ^* J! K
- print(data)% @8 B$ t9 l; T V8 p
- for i in range(0,len(data)):
6 b; @7 @! {" F' ?! I7 z2 F/ y' D - if data[i]==num:9 d3 I5 q6 n2 v F' f b0 k
- print(i)) o+ {" M# L# n
- break- F2 w" c9 ]! ~ X" d7 |" u3 E
- else:* Q- o5 \& ]3 ]0 _4 Q& r
- print('查无此数')
% {# a2 @8 M9 y! I s8 V - LinearSearch()
复制代码
4 y- b$ f6 K: i& q* F. d c1 o4 B
3 G, o8 Z' y2 [7 T2 d ^4 J$ h |
|