|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
0 n$ B! t0 Q$ r3 g
+ E+ @2 A6 k5 p! P+ N6 k实例- def search(arr, n, x):
- o+ a/ q, L: K1 ~1 W - 7 [ f0 ~5 [; @# b1 F0 n$ b, i+ d
- for i in range (0, n):
7 H! I |, O6 U8 | [7 i6 N - if (arr[i] == x): 8 e, J4 Y5 d5 d0 @
- return i; + T( _: t- M0 e) Q2 r. y0 }, {
- return -1;
0 Y% I7 @, l& q: C; `/ C% I -
7 j. K7 T, y$ `5 O) \4 P: Y$ U - # 在数组 arr 中查找字符 D8 J7 M" f* e! M% `3 J
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
9 Q; E% ^' I9 Q2 ^ - x = 'D';
5 i% D: {; W3 e: m3 ?3 j' N0 c - n = len(arr); 1 c& x3 y( S) _) X/ ]& F" F
- result = search(arr, n, x)
( j$ x! w1 _8 O m' q+ c0 q9 K - if(result == -1):
( ~& g6 x+ i/ c - print("元素不在数组中")
$ Y1 N8 s$ [+ ^8 N1 W' u5 u - else: 4 ^" h% Q/ f1 }- `- X
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:3 M: h7 `- `/ K) s9 C% {1 X
" t3 p" R( n$ u7 Q; ^ q案例1:- def LinearSearch(list):
+ T! i, Z/ g: P/ e0 a( r; h - num = int(input('Number:\t'))
' k! p3 u9 E! p7 V N( b - counter = 0
s- Z7 x) R& b2 c - null = 0
* I% H/ U* t' [5 d
0 C8 W& @- P' M" D- for i in list:
1 E7 v+ Q. P9 B# J - if i == num:* [8 o# Y Q" ]9 w5 }7 G
- print('Find number {} in place {}.'.format(num, counter))
1 ^# I( B5 s9 r+ i! d, J - else:: x: C: m" l" y0 v; Y* o
- null += 1* a1 f/ s! Y/ {" ^
- counter += 15 x5 m+ C- i. x2 o& u. g5 R2 P
- if null == counter:
! e5 Z% P# }6 Q1 ?0 P - print('Don\'t find it.')
$ [0 P9 U3 I! k) F- g1 K# q" x7 Q - ! }1 G W9 c" M
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]7 {9 b$ W2 A2 O5 d( o8 C
- LinearSearch(list)
复制代码 案例2
! \7 A& J5 A) k6 d+ O: L& G4 n0 N- def LinearSearch(num=50):8 d7 U Q0 W0 ~9 [
- import random
# v2 t; Z Y+ ^! T( c% U. P# u: J( @ - random.seed(888)% P( g2 y! D6 S6 D0 _: {
- data = []
8 A* K5 F% x1 H2 @6 J6 E - for i in range(15):
, w& e; w2 {2 b$ P - data.append(random.randint(1, 100))+ {% N3 r% w9 j+ H( K
- data.sort(); ?% `. \6 S1 C% A* l
- print(data)
) }8 D0 [3 Q7 b; m4 C! O0 M - for i in range(0,len(data)):6 U2 ^, Y" G+ S" c7 u) R: l
- if data[i]==num:
: _8 K- l9 _/ K6 v - print(i)! _+ C3 g$ @0 v D" F0 D: O
- break) @+ j; e2 I: d0 p4 s B `9 f
- else:
( T7 v/ P( ?- n: B1 |1 D - print('查无此数')
8 P. b0 C5 O, n! P, i0 {, Z6 n - LinearSearch()
复制代码 ! |) J8 z5 v* W% o4 v3 @! E+ y
4 m) [, n1 B. V: M! n
|
|