新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 1071|回复: 0

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

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

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

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

x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
( W, }: d6 `0 N3 ?1 L4 a# ~
Linear.png ( g4 W0 J& M' j/ \% ]
实例
  1. def search(arr, n, x):
    # E9 h( d# Z9 z" w- `' J) e
  2.   1 s. \" V, O. C! `7 n  K1 f! l% Y
  3.     for i in range (0, n): $ F8 n$ m0 I3 S" d6 J
  4.         if (arr[i] == x):
    7 f$ L- e/ c" w8 u; M
  5.             return i; ) ]& z3 b& V! D+ c2 T5 T4 r
  6.     return -1; ) S$ I! B2 p& W- n
  7.   + ^- h: M: x* e* t1 Y* p' g8 j
  8. # 在数组 arr 中查找字符 D
    : `4 N! I( x( \$ Q( L3 R
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ];
    0 S2 M- O2 h3 I3 Y( p( u  x
  10. x = 'D';
    0 V& R$ z, K5 A. j/ _; O/ ~
  11. n = len(arr);
    ) m) l+ f) W* L
  12. result = search(arr, n, x)
    & R! |  j; B6 C1 M) ]
  13. if(result == -1):
    6 Z" \7 N  }) a; _2 m  k* b
  14.     print("元素不在数组中")
    2 [! J) O. |* {) C' ]
  15. else:
    7 q4 e. ^9 u; {* B/ y
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为
, n3 p4 Q2 A! ~9 H- y% Q0 _
  1. 元素在数组中的索引为 3
复制代码
. \5 }. l9 L- ~- z8 C
案例1:
  1. def LinearSearch(list):
    7 a) ~* O7 A) c; v$ H
  2.     num = int(input('Number:\t'))
    8 Y# h! Q4 r$ F- n. j
  3.     counter = 03 W4 M" |) \1 _4 D. A; w; p
  4.     null = 0+ q% T* G$ P, ^1 o% Z8 n

  5. 3 q5 Y1 O! z  i! O
  6.     for i in list:
    " L/ j" j* \) A  a8 T& {! Z
  7.         if i == num:  J6 y3 X  S: b3 ^: \5 j0 h
  8.             print('Find number {} in place {}.'.format(num, counter))3 E* c0 I' T6 \6 K$ |& w
  9.         else:; o% q1 |7 C% o6 v. x& G7 o: S$ [
  10.             null += 1
    ' e3 E, s% R, A4 ~& Q' D. i+ T
  11.         counter += 14 C) G$ E% {; r" b# A: Z6 o# ]
  12.     if null == counter:% B$ w( k1 e! w
  13.         print('Don\'t find it.'). }( \  M+ j% r% P

  14. : S$ R6 z4 s; w% T/ L* R0 K4 v
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
    2 Q" y% y6 @; o0 n# u$ `. G
  16. LinearSearch(list)
复制代码
案例2
) J( B/ Q* u" ~$ w* @- q- j1 o
  1. def LinearSearch(num=50):* I  h' A0 n. [: X
  2.     import random
    5 M( ?% A1 r! W4 V3 {+ i0 P
  3.     random.seed(888)! [0 L( O% C/ j: C' \/ D( w5 |/ X; d# Y- ~
  4.     data = []
    ) D- J8 M$ U( \3 q1 d* M
  5.     for i in range(15):5 e" O8 j7 P/ G) C, ~9 D
  6.         data.append(random.randint(1, 100))
    7 W+ S- b% E; d, Y/ F
  7.     data.sort()# c$ e. j& ~4 c3 {" G1 ?
  8.     print(data)8 U: a0 Q7 `! ]% _" R; \2 h' }: d
  9.     for i in range(0,len(data)):
    4 I! F' @  f1 s3 T- {6 x
  10.         if data[i]==num:8 w$ |5 {4 K8 f! x6 F
  11.             print(i)
    ' m4 a( K7 N8 e. a! o
  12.             break
    ; G$ N0 ]& T: t+ W( w/ Y
  13.     else:& r" M! |0 |& }; w* o0 q$ R0 G1 p
  14.         print('查无此数')
    & D2 Y, `/ p4 D3 `4 C
  15. LinearSearch()
复制代码
' C) |" ~! R: l$ m

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

本版积分规则

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

GMT+8, 2026-6-5 23:15 , Processed in 0.081264 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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