新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 961|回复: 0

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

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

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

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

x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
. t- _$ r& t" ^1 x
Linear.png ! }7 |, o5 n0 V8 A
实例
  1. def search(arr, n, x): - `' T. V: D+ o8 T3 S
  2.   & [7 V. z9 b8 R
  3.     for i in range (0, n):
    / m( N. n& }. J/ F% d
  4.         if (arr[i] == x): , G" e4 z! K# T! p* o
  5.             return i;
    0 G- u1 q/ d; o0 V
  6.     return -1;
    0 a9 A! s7 N, o8 A
  7.   9 Q5 P9 J- i  W& E. H7 ?7 p
  8. # 在数组 arr 中查找字符 D2 I* u" C/ m3 F4 T
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ]; . F% d& B) X( B! Z* W! a; b' ^
  10. x = 'D'; - n4 O  e  S% T3 c  h! Q; k
  11. n = len(arr); 6 b* ?2 X1 V/ W
  12. result = search(arr, n, x) 4 a7 n) J/ H. g, ^3 x* Q2 H
  13. if(result == -1): 3 P0 Z' H: a% G8 E# @: `
  14.     print("元素不在数组中") - m% d6 W$ z3 N1 _& S
  15. else: 5 G) D8 m2 g4 G0 ?, j. ~
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为+ N* X4 G( {8 S1 J& W; k3 d
  1. 元素在数组中的索引为 3
复制代码
) Y" f, b& ]5 [2 ^
案例1:
  1. def LinearSearch(list):3 d+ S) a9 q; Q' L. ~  u& I' y6 I7 Q
  2.     num = int(input('Number:\t'))
    & @1 L7 ]% t! g
  3.     counter = 0, p. P# x5 H5 p; ~  `
  4.     null = 0( J+ g1 z4 S; u( k: n
  5. , t' V( t0 G# K$ H( U6 C/ C% h
  6.     for i in list:
    7 p1 c4 l! ~# E: r, `
  7.         if i == num:$ d- j% U1 R2 \- W% S3 }6 A/ p4 c* c
  8.             print('Find number {} in place {}.'.format(num, counter))
    4 B* [7 y+ U5 M; c
  9.         else:" K8 F! L8 D2 x4 O+ b
  10.             null += 1  i5 n$ N0 M3 r" u; t9 E" L+ N; B4 P" D
  11.         counter += 1
    1 `1 Q7 S/ q) N7 b
  12.     if null == counter:( E/ I) K. w' ]& @% B  b
  13.         print('Don\'t find it.')
    ( q) K3 O$ P% K

  14. / }8 d) a1 n$ C4 j2 l
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
    3 j- n* V" ^, K4 W  f' b
  16. LinearSearch(list)
复制代码
案例2
5 ?- Z, k9 X6 u8 ~1 N# {1 b5 c/ y
  1. def LinearSearch(num=50):4 K+ o  ?4 u% l* E
  2.     import random* e3 G! U; f$ a: x
  3.     random.seed(888)
    2 Q# u2 ~5 v$ i5 _
  4.     data = []: h- U$ X! b# j, |- E
  5.     for i in range(15):  w* _0 T0 k0 f
  6.         data.append(random.randint(1, 100))/ j# O$ v2 ~" [0 S; Z/ y) w
  7.     data.sort()
    5 t0 k9 s- Q" t) g, b' n
  8.     print(data)
    ) M& d; A2 m: b- f( X9 L* d
  9.     for i in range(0,len(data)):
    2 z! `1 e% |0 U% n* p1 @6 c
  10.         if data[i]==num:
    4 V  p0 A2 Y6 u5 p& j' {
  11.             print(i)
    - L; _& V8 C. g, w8 q
  12.             break: }* V* N  Y$ S( r: S
  13.     else:. G+ c  T1 b. G6 [- t, z
  14.         print('查无此数')0 k8 M, ]* ^3 s
  15. LinearSearch()
复制代码

; R7 K9 J7 k) R( ?3 ^' m/ C  B8 I2 M8 _  }, t/ U
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-3 17:23 , Processed in 0.105759 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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