|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
* c: U" J! a& x! l4 B0 v4 m
$ i6 w6 y7 L1 F3 i2 Z, |4 u! u# u实例- def search(arr, n, x): 8 t4 B$ I: {, ]% ?; _( [
-
1 n0 z8 r( G2 g: t6 t - for i in range (0, n): 8 Q2 y, Y, [5 f$ g
- if (arr[i] == x): $ S) U! Z; s6 L& ?
- return i;
I1 }+ ?5 W, f - return -1;
& _* j7 c# s- S% m1 U! X -
g# b+ ?. [8 l \- |$ m - # 在数组 arr 中查找字符 D8 Y. L9 y1 M" G& @4 T- V! `' E
- arr = [ 'A', 'B', 'C', 'D', 'E' ];
* J; w( I- s/ s% U F - x = 'D';
Q, B+ L4 V" `5 G: S9 A - n = len(arr); 0 g, Z: O. @8 F5 N9 k6 O9 `0 q
- result = search(arr, n, x)
- K! R* S0 O8 c( l6 q* X8 S V - if(result == -1):
* O0 o% x! C' c% u3 x - print("元素不在数组中")
+ h( V# w' }+ {7 o1 z" j" v; L - else:
% f. E8 t V* ?# f# C, |+ ] - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
" F( k2 \5 r! H* `) R/ M/ [) j. F
案例1:- def LinearSearch(list):9 N( ]$ ~# K4 p; F; z( p
- num = int(input('Number:\t'))
' [1 Z' e* c$ c& ^ x - counter = 0
$ f2 s: j7 E( ?. [6 C9 ~ - null = 0
! w% K' g ~& B& F1 [* U
& L) {# p# X( \ q" `6 q* W2 B- X/ s- for i in list:" q( v$ R7 f0 ?7 l( |
- if i == num:( O6 e; v% g% M6 p
- print('Find number {} in place {}.'.format(num, counter))2 x, @5 y+ U: n- Z; j
- else:
; N/ A$ |0 I8 K, D0 }2 ~7 ?( p( L, a. u - null += 1
; J* w. \. t- }' I8 Q& ` - counter += 1: W( ^6 T$ M) ^ ?+ U
- if null == counter:. B; z! ^# X% M. I5 i, w
- print('Don\'t find it.')( b0 S; R& ?) O2 A9 O
/ r2 p, ^0 S9 N5 ?% j- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]6 s; d! i8 k/ A! [3 l9 B ^
- LinearSearch(list)
复制代码 案例2
" ^ r+ t9 u. S1 a* ~5 |- def LinearSearch(num=50):
- X0 ~$ f; d, |: n! T( l - import random3 m2 p/ u0 A3 X6 R5 Q
- random.seed(888). l s, _* x4 ?* Q
- data = []* L* J. _2 q0 G2 x1 f g- ^: j
- for i in range(15):
+ D+ j4 F7 D7 r: x1 B' w - data.append(random.randint(1, 100))8 m/ e% w2 ]2 r ~
- data.sort()2 Y& q% |; K7 {& @ O/ W# {1 D
- print(data)
: |, ], y, J, D7 } - for i in range(0,len(data)):- W" R, |+ ~# o
- if data[i]==num:
6 b2 u7 A$ ]4 Y - print(i)- U$ o& E9 V. y$ M! B3 S1 e$ z1 ]
- break
7 R- E) ^6 Y; A- }! [) P0 | - else:
: K% k: i) ^- H8 R: f: ^! n - print('查无此数')) N' w) b: t% o* o' ^ Q
- LinearSearch()
复制代码 " v( |2 ?, o* n5 L2 D% R- I
9 q8 |0 s" x6 v/ F) G6 u" [1 j |
|