新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

《新大榭》- 创大榭地方网络社区先锋品牌 新大榭始终专注于地方网络社区平台的建设 关于我们- [大记事]- 留言建议- [新手报道]

发布 .新大榭软件管家(Excel版) V6.0版 财务/仓库/生产/销售/采购/行政/人事/校园 .公告 - 客户 - 打赏 - 职场 - Excel - Python.

新大榭镜像-音乐-法律-图书-高中课堂-实验 广告是为了能更好的发展 [欢迎商家支持本站互利共赢] 广告位招租.首页黄金广告位等您来!联系 13566035181

查看: 1018|回复: 0

[笔记] 7125 - [选修1]Python 线性查找

[复制链接]
发表于 2021-2-19 11:47:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!

您需要 登录 才可以下载或查看,没有账号?注册

x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
9 J. Q/ M; u) W; u5 G+ o8 O
Linear.png + |' w$ ]( N: _4 v+ \  g
实例
  1. def search(arr, n, x):
    , D1 u! W, G& v' F
  2.   
    " ]9 r5 R, ?" k  y
  3.     for i in range (0, n): 5 h3 T$ h) A. l' s+ E8 J/ t* B
  4.         if (arr[i] == x): 0 V3 O2 q9 c1 G7 a, m( U" ]
  5.             return i; : P3 D# C9 V5 i
  6.     return -1; : B( y- p3 t" ^, L/ W" X8 b
  7.   
    1 r8 a( x2 Q  L# f! X+ C& r. J( s
  8. # 在数组 arr 中查找字符 D
    1 F) T' b6 d1 B5 S
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ];
    4 e( q0 y/ f" Y9 `
  10. x = 'D'; 3 O' F; A0 |' b3 l
  11. n = len(arr);
    ( N+ H" k9 [6 S) E( }
  12. result = search(arr, n, x) $ j: K& P5 u0 N+ Y2 _: Q( h- F
  13. if(result == -1):
    / {1 o! C+ |" S
  14.     print("元素不在数组中")
    2 {0 e: P3 i3 S4 J" B, I
  15. else:
    6 j: y* L. Z* Z' T
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为; j" W' B* |2 Y5 |* L% j. ^  }5 Z/ @
  1. 元素在数组中的索引为 3
复制代码

" D( h& t% a/ P8 J0 [3 R案例1:
  1. def LinearSearch(list):0 a( T; [* m0 J/ X) G& r1 x
  2.     num = int(input('Number:\t'))- V9 o' I, m7 U* \/ Q% @; g6 @
  3.     counter = 0: g9 o4 X2 ^- x$ Z0 C
  4.     null = 0
    - v8 ?7 r, v. c
  5. . `6 }, ]6 A, f' @. ^
  6.     for i in list:2 \8 P) V1 \8 a
  7.         if i == num:" k1 w" I0 r* k, Y- B
  8.             print('Find number {} in place {}.'.format(num, counter))" O6 y6 I8 S2 X! H* k6 W
  9.         else:
    / @# @; o7 R% l4 }7 f
  10.             null += 14 Y8 k6 w( c4 X
  11.         counter += 1! `% A, M) R, m
  12.     if null == counter:* Y3 y3 s) I; n; \, \
  13.         print('Don\'t find it.')! \' y; w: y0 d* |

  14. % X' z& _! J1 @5 V5 F
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]. W* L6 G/ n3 v8 w8 s# w9 b5 j! L3 T
  16. LinearSearch(list)
复制代码
案例2
7 I" P5 W* K1 ^
  1. def LinearSearch(num=50):
    9 ^8 J& G7 y; s; s& p) B1 }
  2.     import random
    1 s7 z7 ]: V3 e8 a, K$ K
  3.     random.seed(888)4 q2 b/ U9 _8 ^  D0 i
  4.     data = []
    * R2 h! [+ b$ w0 U2 e2 C
  5.     for i in range(15):
    & Q1 T8 g1 c( |1 u' N( }2 ^
  6.         data.append(random.randint(1, 100))
    ) k2 ~7 A/ F2 k; S3 b
  7.     data.sort()* r4 W( d" z0 ^( b2 G4 C2 O4 B* I  R$ d
  8.     print(data). [) A& {/ \; L; Q3 Z  q2 n$ t
  9.     for i in range(0,len(data)):
    / P$ L# Y% T9 F! M# C
  10.         if data[i]==num:
    * |+ J( r4 L- m1 q% e
  11.             print(i)9 h. O1 G- H% O& q0 [, Z
  12.             break
    7 c; n- ^1 Q% X; I' g$ W- j# V; T
  13.     else:, l  P: H* a2 c
  14.         print('查无此数')
    # p. u3 k$ _6 }& s6 @# N1 E, `2 `) U
  15. LinearSearch()
复制代码
4 T( |2 m1 K/ W  v9 e! _

8 D2 X: a4 d& a+ ~
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

文字版|小黑屋|新大榭 ( 浙ICP备16018253号-1 )|点击这里给站长发消息|

GMT+8, 2026-5-2 13:48 , Processed in 0.084361 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表