|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。 * o7 S# |% c9 O
" x6 k7 q7 ~% {" J9 J
实例- def search(arr, n, x):
4 Z4 S# w- J" ] }- p; l6 l3 Z - / I O" G4 Q1 N: E v- Y
- for i in range (0, n): 5 ~4 a/ G" V- _& {1 V, R S* J
- if (arr[i] == x): - [0 A K" v2 O2 i
- return i;
& B- s% q( `" R2 O+ z% ^& y - return -1;
' g# s [, Y- o" A -
; ^0 s: n0 l7 L: N: Z7 q x" ?4 L& b - # 在数组 arr 中查找字符 D
- `' w2 i6 [! t - arr = [ 'A', 'B', 'C', 'D', 'E' ];
* Q: ?+ g' D1 h; w - x = 'D';
$ m. B& _. F! Z1 U6 R( \ v - n = len(arr); ; E) O: I9 n- Q; L- ]; l
- result = search(arr, n, x)
/ [4 c9 O; r) A - if(result == -1): 5 n( W3 u/ Y( }- L6 n a
- print("元素不在数组中") & o" i S# h* }9 T3 [
- else: 3 |' e, B( o( K; i" S" v8 t
- print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
: R# w& Q5 {8 K. G8 x' L! Z8 o# b [! p
案例1:- def LinearSearch(list):
- q9 @" E, E/ A: j3 P - num = int(input('Number:\t')): p0 E$ z2 x k T1 `! b1 O
- counter = 0/ g5 K0 b! T" U& L1 f
- null = 0
. y- {7 N: l/ A
# @4 H8 ~' w- {3 \& l- for i in list:1 B9 b) l, K7 a5 I, m- \
- if i == num:' S% t- g% [, _9 `, C4 A3 L& w$ m4 c
- print('Find number {} in place {}.'.format(num, counter))
( E/ f, N* V0 q0 S$ @ - else:9 R' ?2 _; q# _# ?* r. ~
- null += 1; K( j3 n: W9 O4 F1 p4 [1 @
- counter += 1
+ f; c/ w! g. K5 I/ j( K - if null == counter:( E- h) {6 r4 E* o
- print('Don\'t find it.')
5 b. i' ]3 m4 h" B: R, N
) G! k! {4 U8 ], ]- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
9 o, K& E' f9 F" [7 X8 b - LinearSearch(list)
复制代码 案例2
8 g5 C# x, j) z+ A( V% v- def LinearSearch(num=50):
, u7 C, O3 z2 q0 X* r* l; Q& W - import random
+ g1 q1 k4 E5 t' O' P9 T - random.seed(888)
; M# n. s5 A8 e0 N+ x4 s' P - data = []
2 v. ~3 Y# x/ t+ g! P - for i in range(15):
" j2 H5 s8 ?) l' D; ~9 [# m# | - data.append(random.randint(1, 100))" u/ I+ ^. b f& T4 Z9 s% l
- data.sort()
! T" N7 E+ w2 E - print(data)# |( E1 f+ b3 B
- for i in range(0,len(data)):1 p/ W6 L! T7 D3 m
- if data[i]==num:
2 P7 O6 H `0 F2 [ - print(i): ^$ l) x5 S( f$ j$ |
- break. A" G4 h# L+ V" O' G
- else:6 a/ B3 J) c {' Q5 M
- print('查无此数')- ~( o& w- I) l% o
- LinearSearch()
复制代码
2 t/ o, {3 B5 Z
i" `* ]" h4 B7 Z$ r- e4 B |
|