新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 981|回复: 0

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

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

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

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

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

. m4 p- L& @' S; L/ p Linear.png
# Z" k) J* l$ }5 ^9 L. l实例
  1. def search(arr, n, x): , Y$ j8 N; ?4 g9 w$ F  f% f# O
  2.   ' T6 Q3 a$ R% c; [  ~: j
  3.     for i in range (0, n):
    0 [6 e$ d/ W1 @
  4.         if (arr[i] == x): : q5 J/ K2 J1 ~3 A$ w
  5.             return i; % b& J- ?( p) S8 o# K* M
  6.     return -1;
    1 D; g7 I* X/ ~) r* e4 m
  7.   + f6 y5 o, L& S. e$ Z; \0 X
  8. # 在数组 arr 中查找字符 D4 |; u( Z  [0 p1 ^6 ^
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ]; ! |! t; ]& I1 x
  10. x = 'D';
      \+ h( x+ [0 {& N; }# w% V+ V
  11. n = len(arr); , F8 A/ s; G7 j! o6 B2 h
  12. result = search(arr, n, x)
    ; [* `! `6 U( Z/ r% e) I1 k( W
  13. if(result == -1):
    0 o8 ^) ]8 X& x- X* Q, X! g
  14.     print("元素不在数组中")
    # h# r# o7 p( k3 |) z9 e. K# V3 _
  15. else: : N  `& I& q6 h# l
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为& k" [5 Q& ?- {, V; X; [1 D" a  U6 I
  1. 元素在数组中的索引为 3
复制代码

; X1 n* h# }- \! N案例1:
  1. def LinearSearch(list):
    ) g4 a! G+ X8 E, F; ]" f2 s: |4 j1 b
  2.     num = int(input('Number:\t'))
    7 r" E7 }+ l, o' l* n) x
  3.     counter = 0
    2 |8 w" s1 |% t; q2 t  R' d
  4.     null = 0
    & r: U: \" n0 a8 e) ~1 z

  5. 6 z0 c  v2 Y) ?' P6 v
  6.     for i in list:
    2 C+ p; E" z' @' I
  7.         if i == num:& Z1 R$ {) {' ?' ]4 J2 Y: J: l
  8.             print('Find number {} in place {}.'.format(num, counter))" E5 M0 m6 H0 K- H
  9.         else:- O& r! e8 y8 f
  10.             null += 1
    ' Q  K/ L/ n3 F+ \- C
  11.         counter += 1
    & U) \  j9 S; n  [! P4 T* ^: r
  12.     if null == counter:, r" h! @! G9 T1 A& Y
  13.         print('Don\'t find it.')
    / B  [! a9 r& G" l, u
  14. - t& m; [9 ^6 w6 h# m4 {9 `! K
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]  G2 q$ |4 P" p; [$ r+ V) I
  16. LinearSearch(list)
复制代码
案例2
" c  G* p' L% W! ~' S5 l4 t
  1. def LinearSearch(num=50):
    0 t9 n: n/ b  S( P2 E- i1 u& @
  2.     import random
    + c6 c& Z& s7 Q3 M) x! L+ h7 @  I+ R0 I
  3.     random.seed(888)- h( E' x" n/ f
  4.     data = []& F) Z6 |$ `7 r7 y( l; a
  5.     for i in range(15):: h, u, [/ F% d
  6.         data.append(random.randint(1, 100))/ U# z2 f& W" [$ j
  7.     data.sort()8 e1 ~! f+ f" M; u3 b. S
  8.     print(data)
    ! t' \6 E" v; G
  9.     for i in range(0,len(data)):
    / S- N0 L) N* ]+ b7 q
  10.         if data[i]==num:/ r. R3 _+ w# G' @0 g5 S8 B
  11.             print(i)1 d9 g* q* F4 {' l- t
  12.             break
    $ c# w7 r7 P1 A# ~6 @$ m/ u
  13.     else:
    ' @6 t( c2 |% f' G* H* {
  14.         print('查无此数')4 G8 t, s( n7 K; a) Q+ N
  15. LinearSearch()
复制代码

! l' j+ \8 P/ W' `* L7 ]1 Z3 F3 v  o4 T! l# R' Y. k( h5 F) }
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-28 08:17 , Processed in 0.079727 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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