|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 9 r k ^ o8 J5 {6 ^* u
; w+ S' ?7 s7 r" T4 J. K2 m! _实例- def search(arr, n, x): 2 m! H( B9 O' c3 }1 n/ Q
-
8 D- n, G) J! `5 s8 s. F - for i in range (0, n):
0 A$ E+ R- v8 L - if (arr[i] == x):
, A8 K- M9 p0 C! ]) P - return i;
* s9 K0 b4 X* {( j5 }1 a5 M - return -1; . H: Z+ q, E( _. {+ t
- 5 Y! Y8 ~4 ?% t5 S6 N
- # 在数组 arr 中查找字符 D8 o1 j" Z8 z o
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
1 p, k2 Y* l- i) o8 h# v B+ ~ - x = 'D';
8 t, n* K$ ]' R$ m7 Y$ \( A) ^) { - n = len(arr);
" g* y$ M: A& _% G - result = search(arr, n, x) 7 k, {5 \/ U/ ]$ l
- if(result == -1):
4 {0 z* A5 X2 N' U7 C: e - print("元素不在数组中") % R+ z8 U% R7 E
- else:
! k! \# ~- j: L, z* [) ^% c - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
/ u: r5 @. E0 m0 d4 e1 V
- \$ w! N7 ]! ]- l9 n案例1:- def LinearSearch(list):
1 B+ f( G; e. {( H, o - num = int(input('Number:\t'))
/ O; q+ w- J2 l. F - counter = 07 P! b) ]8 `# w; ^7 n
- null = 0
+ I4 I: {5 G! k4 s+ U: ~ - 5 D: ?7 T' A8 o2 }; p
- for i in list:
+ ~7 S$ x+ L0 D# I% {5 X - if i == num:
1 t5 n7 }" p7 h2 N6 y - print('Find number {} in place {}.'.format(num, counter))6 V5 t( m) J( P# q
- else:2 K; w @3 U# k d5 {
- null += 1
* Y1 j, k. e4 }: K4 F! \1 R - counter += 1
, X3 l6 F8 H: J' m% r# [( C$ C - if null == counter:
5 a3 F: I9 F6 Q# S% o/ g9 C$ o: I - print('Don\'t find it.')
2 E5 n+ @: @0 A0 a' O - & H: O/ N, z$ v
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
7 N! I0 W2 v) U8 `& ]: j* F( K - LinearSearch(list)
复制代码 案例2' I9 k, ~# H( U+ N$ C4 Z; P
- def LinearSearch(num=50):
& a1 z& x0 r$ P9 B# ?1 {# i - import random
% e2 b+ T: C# e - random.seed(888)) V; D" N3 |6 S
- data = []
( R2 t4 H: U+ O/ j3 ?2 V4 V - for i in range(15):) J$ _) A6 I9 R5 M
- data.append(random.randint(1, 100))
, k. t% Z4 `5 p" K# H6 K/ d - data.sort(), t4 u0 g5 s! s a1 ?
- print(data)
, P1 k1 t4 K, v1 P' E6 c6 u& z - for i in range(0,len(data)):5 E( I% a" |9 _$ z) N/ B. w/ G
- if data[i]==num:3 H" P" Z; H. `) H8 T: Y/ M6 f
- print(i)
" n" q( h8 E6 [. o) x! V - break! o2 z4 {. ?- B3 i
- else:
' k3 H7 Q* z4 V5 {9 x - print('查无此数')$ u$ c9 g+ L( y& d+ \
- LinearSearch()
复制代码 : b" |7 k5 w0 X: P+ g% J
9 m0 c$ z( F/ U2 w2 E |
|