|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
. o. b. z- j9 F3 }' _' x/ a5 D
% W/ y! i6 Z8 w
实例- def search(arr, n, x): 4 V* F) ]* Q; G1 C
- & p B/ o8 F7 \1 _
- for i in range (0, n): # F3 J0 l% W; N7 ?' K, ~
- if (arr[i] == x):
, r$ x- {2 u1 Y, U - return i;
9 B# G2 e/ F0 b$ T) ]' |5 N - return -1;
$ b7 |: @* e2 Y' f" } - & B* e8 W. O- g& e9 E4 I& i
- # 在数组 arr 中查找字符 D% N W( T$ _" M
- arr = [ 'A', 'B', 'C', 'D', 'E' ]; T4 G# C! B! B" I1 U1 }4 a
- x = 'D';
( s4 C7 [9 ^* P - n = len(arr); ' t% _1 l, b$ A* B8 T2 H
- result = search(arr, n, x) . p3 ?8 [" i2 p- C# g
- if(result == -1):
6 N0 b. K3 Y. e1 e - print("元素不在数组中")
# X1 J; Q: ` R6 j# i) Z6 Z - else:
4 p* `/ p o: c0 Q - print("元素在数组中的索引为", result);
复制代码 执行以上代码输出结果为:
( \: y' B# `8 ]% X
$ E( b1 P+ j- |4 Y! i案例1:- def LinearSearch(list):3 I7 U: y0 d5 [8 _# ~5 F. E v4 o
- num = int(input('Number:\t'))0 s, D7 {6 D' S7 l
- counter = 0
# s, d) \, e" f/ G% i9 f - null = 0% M9 l9 B3 f; v" J. ?
$ @4 d% W, E* r6 T/ d9 h- for i in list:; @ S" { }3 y
- if i == num:# u- x2 W8 j& }: d4 e
- print('Find number {} in place {}.'.format(num, counter))
! E" \$ u( s/ i8 ^; Y/ }8 ^ - else:
* {: s2 p& B% ?7 |3 c$ i# \" t6 n, A1 B - null += 1
# S0 z0 ]6 \ L - counter += 1
& e% s2 q, a6 n* V3 z7 I t% T - if null == counter:8 N# s$ ^" x& [! l
- print('Don\'t find it.')
3 e/ P9 J6 |8 Z: u+ G' A" _4 L/ D - ) G( g$ q& x7 T' R9 E
- list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]) @; v O! C9 b+ {) H# l$ k3 |$ C
- LinearSearch(list)
复制代码 案例2
, X) K6 w9 {6 q4 | ~+ G# a3 _- def LinearSearch(num=50):
; q. i8 d, d) o/ J7 X - import random
. m4 L+ ]: k1 i0 G3 f - random.seed(888)( f7 |& Z* A7 F# u0 F
- data = []# d: O; i' j( f) N, L x
- for i in range(15):: @ h) R% j: q0 z
- data.append(random.randint(1, 100)). ?9 g7 d2 i3 h; ~- l+ Q
- data.sort() Y5 C& F8 x# D0 n$ Q9 [
- print(data)
2 u4 `9 b& s! O2 Q5 u* N5 | - for i in range(0,len(data)):- q' k3 ^8 f9 a5 ?% Q
- if data[i]==num:
+ N, \; K4 b/ X" z, i9 O, z- ` - print(i). g' A+ o6 x$ I$ z, G# |+ i
- break6 S0 M3 `5 C7 T* J# w* R
- else:( I. E# _7 o1 Z, L2 y, R. q) g
- print('查无此数')$ z! A1 P- R; s3 a/ a
- LinearSearch()
复制代码
/ f# e6 B0 a/ p( g) |( g- p
T9 R# L6 D( e$ }) |7 o |
|