|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 _ z6 o% N" H5 U- [$ X; T6 b0 |
0 r, \# v9 K* B; r' g" V$ Q/ F实例- def search(arr, n, x): ( m! z/ `* S9 b6 A
-
5 z, |/ w3 E2 {/ t - for i in range (0, n):
[) s: I0 X+ F+ X - if (arr[i] == x): 6 m/ [4 \2 P0 M' s7 Y7 H$ ^6 {2 x
- return i; ) k5 Y, j! n' o# k% a& _- N
- return -1;
+ Z* a8 [1 n" W' O5 U! U- x% j -
0 ^( Y W' e4 F% o9 Z- R, L) B - # 在数组 arr 中查找字符 D+ O ^8 o& G# W1 v% y3 t
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
/ j* C! G _5 b. l - x = 'D'; ( E4 @8 r" B# t% o2 X* t, C
- n = len(arr); - f% f9 |1 a2 t* H. h# d
- result = search(arr, n, x) * F8 q* E, ~* k
- if(result == -1):
/ F0 V( {/ G& U; f; v5 U' C7 H - print("元素不在数组中")
0 r/ ~5 V- e5 s" p+ U* s5 ? - else:
% v! k3 _/ K* W( d4 M - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
7 v+ p3 t3 C- K0 F- i' z- E; e* x% j9 w4 g
案例1:- def LinearSearch(list):
6 [5 q+ z" W4 S6 @' n; N' Q0 f - num = int(input('Number:\t'))* D _" D$ p; l7 i) d. w7 B
- counter = 0
4 U. e+ p% X6 D) j5 D- R - null = 0
. f! V, |9 G; D8 t9 H - 6 ~( G9 v/ S' c& J% u
- for i in list:' @' o9 O) k/ p
- if i == num:3 o6 ^- ~/ W* k& t( f3 c
- print('Find number {} in place {}.'.format(num, counter))1 z b) @6 h+ Q" Q! {
- else:
7 ?( \: S6 T9 h- l; ~1 D8 L - null += 1- U5 Z8 G7 z! {
- counter += 1
- F1 r. u2 j; @3 x# ~6 \' n+ ] - if null == counter:5 w1 O4 K& K9 r, K0 l
- print('Don\'t find it.')
1 H! a& o/ O4 [) v4 J
$ \4 {" A! [8 l& c" ?- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
. w9 V, K2 c8 x - LinearSearch(list)
复制代码 案例2' k3 v+ ]* u" S6 j% h4 W0 B
- def LinearSearch(num=50):
) Z$ ~& R) k, \# m - import random# n4 r! Q: U I
- random.seed(888)
+ Y! |3 S& q$ j, z+ [ - data = []
7 \2 _4 j' h, d& H; w2 Y# L - for i in range(15):
; m- t: |1 w7 k' g - data.append(random.randint(1, 100))2 I; z) Y( b4 d5 |0 `& z0 G
- data.sort()
) b+ x8 R+ d9 e2 b- @! T# Q V - print(data)0 q% w! `$ n9 \8 V. z: v( u
- for i in range(0,len(data)):7 v1 ~; l* K, E! F, j
- if data[i]==num:4 A& x, Y' r, F9 P
- print(i)( A; A* R) Y. y' Y7 D: K
- break% b2 h: c. a2 L" c+ h2 x- z
- else:
1 @, d; _2 @& k. P- M8 H; w - print('查无此数')8 f( |7 d( n5 U0 e- k* A+ a
- LinearSearch()
复制代码 ' S- c/ ]$ y, h, [& ~3 n
* j# K9 X& o+ w! U7 b; b! N
|
|