新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 1028|回复: 0

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

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

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

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

x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。

0 Q) z1 |( J: Z# @9 h8 M Linear.png
$ B/ g$ G5 S) O6 b: V( @实例
  1. def search(arr, n, x):
    ( p6 c1 f1 a* s$ O5 D6 D
  2.   / F' t" W$ i6 I
  3.     for i in range (0, n): * ]7 O" m2 y4 J1 |+ Y8 ?% r: s
  4.         if (arr[i] == x): ' m: `% U' u8 ?% G3 m
  5.             return i; + M3 W3 s$ w5 Q8 A1 U
  6.     return -1; $ [% [0 d3 t2 c* w/ @) `
  7.   2 D) d7 C7 Y  L. U) D
  8. # 在数组 arr 中查找字符 D
    : H" N& K9 q. L$ G! j3 y& P$ I& j! B' g
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ]; 1 e1 E) j, }3 k* \7 ?& {
  10. x = 'D'; * i9 ?3 s. a) S$ x4 N" C% c
  11. n = len(arr);
    , J  z- u% u' I  Q, X
  12. result = search(arr, n, x) ( O5 r8 z" [+ M6 u' N, M: S8 r0 g
  13. if(result == -1): , a* F, E5 S( x. Q# v" U" k# h, I
  14.     print("元素不在数组中") 9 W9 q0 i. z% G! n
  15. else: 4 v$ V4 ~+ ?3 J4 }2 X9 [
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为
, c& l  F3 U7 x$ S7 R
  1. 元素在数组中的索引为 3
复制代码
5 a7 i4 \* B+ U! T4 h0 R- W
案例1:
  1. def LinearSearch(list):3 w* h" T% `% u0 O/ k. v8 _" i
  2.     num = int(input('Number:\t'))
    4 `1 _' `. j  t+ |
  3.     counter = 0; N! n/ b1 w# v9 t' o) e6 D
  4.     null = 0* J( ^2 l% d# h, b  l

  5. ; U/ [" C% S! Z; C1 B$ `4 W9 Q
  6.     for i in list:% \& Q# P+ H3 A; L7 S+ e( F
  7.         if i == num:& ]0 W5 f& R+ y- F; c2 {1 S0 n
  8.             print('Find number {} in place {}.'.format(num, counter))
    * z' }7 `. g) ^* {9 j) ~
  9.         else:
    % Q* R/ F) s6 g$ M
  10.             null += 1+ ~/ b" U& [) J9 M$ p
  11.         counter += 1
    % a' [  U9 ]" [; I
  12.     if null == counter:# ~: }, ?2 `- T/ O' J
  13.         print('Don\'t find it.')
    ( D" m' B  p& V; z' b5 |
  14. 6 L2 X' P) ?+ K. a, q' L0 C% `5 |
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]8 J7 h5 E5 l" g7 ~5 E% V. C2 p
  16. LinearSearch(list)
复制代码
案例2
7 H: v% A% C: a7 B) N$ y* F& z
  1. def LinearSearch(num=50):5 k3 S2 N' r9 h* d! G# ?$ E4 {9 [
  2.     import random9 o; M' t$ N3 ?+ b9 d8 c$ e2 G  J7 C
  3.     random.seed(888)! V  M6 R1 U2 N3 B. \) t
  4.     data = []! g3 y2 O8 ?2 A' _0 K
  5.     for i in range(15):
    & K7 H! Y$ ]& v: d
  6.         data.append(random.randint(1, 100))/ [9 j% l4 s* D7 Y# E) B/ X
  7.     data.sort()
    - Z/ M1 f- @4 p. D; @
  8.     print(data)
    1 }3 Y$ z) \. M5 T
  9.     for i in range(0,len(data)):( R3 Y* q6 @" O8 K4 w
  10.         if data[i]==num:# A  K3 l8 K# J0 C. p8 B5 w
  11.             print(i)
    0 q* o& j0 l5 v
  12.             break
    3 ?+ b8 l; }* J# @
  13.     else:! j! \7 V& ?5 H
  14.         print('查无此数')
    $ E6 f' }# @% w7 f1 b9 ~8 I# e
  15. LinearSearch()
复制代码

0 n: z% R; o% i/ O* S1 X& M; H1 ^6 w4 A, i" Y/ }
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-14 12:17 , Processed in 0.091833 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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