新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 972|回复: 0

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

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

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

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

x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
; n4 ^5 j8 x* ~; E
Linear.png 6 \& q6 [4 g# b- K5 q& ?; Z
实例
  1. def search(arr, n, x):
    3 E9 z" T1 Y8 V0 `' N0 z, l
  2.   
    # P* ^- J/ K  n0 B" A
  3.     for i in range (0, n):
    % g6 N+ k% n5 S) D- q  j
  4.         if (arr[i] == x):
    & R4 e- m7 ^+ u; |+ G: K
  5.             return i; 7 X. ]6 g( w: n/ G1 ]
  6.     return -1; : X& x7 n8 `, P! F; o: |5 {+ n
  7.   ' ~+ r& Q( E' ?. @
  8. # 在数组 arr 中查找字符 D: q% F) E8 _9 y# ]0 C
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ];
    $ s& G  v% z: E) f5 H
  10. x = 'D';
    / C- N9 c( M! d* B* o
  11. n = len(arr);
    , s' m, i4 T8 x, L8 ?( P8 U
  12. result = search(arr, n, x) 6 p% g% X* G8 T* o/ N; F
  13. if(result == -1): 1 {+ Q' M* A4 a
  14.     print("元素不在数组中")
    & ~! Y) R5 z8 I) h
  15. else: 6 t! ^) ]5 N; R
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为
1 ?5 |% {% U5 w8 J
  1. 元素在数组中的索引为 3
复制代码
$ Y. z" b9 v0 i8 B
案例1:
  1. def LinearSearch(list):& D8 U, p1 `9 e0 B  {/ O' D
  2.     num = int(input('Number:\t'))
    + v) c* G! B5 D6 a) Q4 Q' B8 g/ K' M
  3.     counter = 0
    0 A9 I9 f, G% R8 S' O. Z
  4.     null = 0, B: E8 O. K# a1 r( Y
  5. 8 T0 Z; V' L3 l9 b& I
  6.     for i in list:; E. u9 X- y5 k$ `8 N
  7.         if i == num:; E; u& m; B5 }4 G
  8.             print('Find number {} in place {}.'.format(num, counter))
    3 B3 `. }2 P3 l( T7 f
  9.         else:- b" M  F9 D& ]2 s# f
  10.             null += 1& T  ^9 _9 ~* h: }7 |' L1 X
  11.         counter += 19 N4 }  U9 H7 C" e3 }0 }
  12.     if null == counter:, {; `  ^# g! }
  13.         print('Don\'t find it.')
    & h/ z$ S8 N6 ~* }
  14. 7 Y1 u2 G& A3 l% U5 Q" c5 I8 d+ u
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0], I  j6 e6 U) z" w0 R1 h
  16. LinearSearch(list)
复制代码
案例2
/ K: T9 P3 S, f5 k- p
  1. def LinearSearch(num=50):
    7 \: [* I, m, O5 G$ J
  2.     import random
    3 t  u9 e# `; D
  3.     random.seed(888)4 T: C8 _8 b/ d$ @$ l2 `
  4.     data = []& @9 N. K; Z# S4 I7 ^5 {
  5.     for i in range(15):
    9 C, s" t. B. s, x5 L
  6.         data.append(random.randint(1, 100))
    9 I8 P  t2 P4 C+ t" |# f
  7.     data.sort()
    6 N2 `/ y6 X. y0 e* o
  8.     print(data)4 i; z+ y2 _6 D. O, ~
  9.     for i in range(0,len(data)):
    0 K3 e6 V( O. H6 Y& \8 F0 K
  10.         if data[i]==num:
    9 u0 S; S0 m4 E
  11.             print(i)
    6 s$ w7 c7 O  g/ b# m8 U& L
  12.             break5 N, x# [$ P6 a, N
  13.     else:/ h1 T- E/ M  s
  14.         print('查无此数')
    6 i2 w" Y/ Q4 f4 l1 Z. M0 X4 @* k- I3 z
  15. LinearSearch()
复制代码

3 U8 p9 X" P3 m" o) c$ g$ H/ ?. Y# ?1 f( _/ Y  N5 d+ ?- E0 E- C
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-12 16:11 , Processed in 0.100688 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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