新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 971|回复: 0

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

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

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

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

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

6 q  V1 Z9 V* n  W! k Linear.png
+ |, I6 j0 E. v. b- F; g实例
  1. def search(arr, n, x):
    8 _7 M* L( m4 z% C( {
  2.   + F4 Y; I* x8 n3 ~' d) Z* _' ?) g0 W: G( M
  3.     for i in range (0, n): ) s1 p* R. E5 O8 I8 ^
  4.         if (arr[i] == x): * f9 y  ]) D" E9 P7 u8 G
  5.             return i; 2 l" g4 `$ m1 u; P/ X9 }7 ?) F  d
  6.     return -1; 7 z  f: w  E9 X! b
  7.   ! Q9 }" Q- t% [2 R
  8. # 在数组 arr 中查找字符 D
    ) |4 \" f- M+ b7 P
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ];
    ; G. ~- _6 _" ^7 J" ]
  10. x = 'D'; 1 i9 R1 W/ t* r% `
  11. n = len(arr); 9 O% }$ ]" h: l& ?3 Q7 Y
  12. result = search(arr, n, x)
    / d# m+ g/ S5 i5 g( G/ b
  13. if(result == -1): % |# F. J' i; n# P0 c8 ^; s# D
  14.     print("元素不在数组中") 8 g' H# Z0 |6 P$ A- U" c# e( n  g
  15. else: 2 m/ e7 v) H7 w# }' }
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为8 ]! Y! e2 R2 s! E  P5 ^0 p
  1. 元素在数组中的索引为 3
复制代码

, [/ _, O& T0 ]1 @& q案例1:
  1. def LinearSearch(list):6 p( j) n6 {: i% J0 X" H
  2.     num = int(input('Number:\t'))& |5 |- c2 X/ A1 U2 Y
  3.     counter = 0. x5 v. b4 e; Z2 g8 ^3 q3 N% u  e
  4.     null = 0+ e& r1 f: j# {' |3 Z7 Z

  5. 0 ]$ E+ R7 w, w% w) Q  v6 S: u
  6.     for i in list:! V9 x  J, V) a' Y
  7.         if i == num:
    $ x- v3 y) d/ Y2 B1 R- y
  8.             print('Find number {} in place {}.'.format(num, counter))
    ; G/ I6 h4 R: q# d3 q
  9.         else:
    # j6 z& u8 @- u6 X# c7 v2 W
  10.             null += 1% O7 z0 K1 P' y- c4 \- q
  11.         counter += 1
      R6 g; `( l2 s, S) ?
  12.     if null == counter:+ d8 \$ ~4 m6 G" m: ~9 F
  13.         print('Don\'t find it.')
    1 s! J( j9 b! y, Y& Q

  14. " _# j' J( [# `) d" x
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
    9 n3 e: u* @+ C6 @. ?
  16. LinearSearch(list)
复制代码
案例2  z% x( ?) S! j
  1. def LinearSearch(num=50):6 {! s  u' x* s4 h
  2.     import random" z7 @9 u- D5 `# `8 Z2 x# F
  3.     random.seed(888)
    4 h: W4 A" ]3 ^& M( J% G+ {* x: K+ T
  4.     data = []
    & G( K" n7 g; u; ~
  5.     for i in range(15):
    ( k8 Z8 P$ U. b$ E
  6.         data.append(random.randint(1, 100))8 F5 G3 z$ e% l% F
  7.     data.sort()
    7 A# J+ n! K3 V& \
  8.     print(data): G# S$ x$ T' n  E& p9 I
  9.     for i in range(0,len(data)):! T5 ]; r0 b8 R
  10.         if data[i]==num:, ^2 z; J' U: t
  11.             print(i)6 @. ?$ E8 p/ V& V
  12.             break
    * m6 \* y: f  Z/ e
  13.     else:* R  s3 f- B9 O5 x
  14.         print('查无此数'); F( s4 m% [% H, z( @' t
  15. LinearSearch()
复制代码

( G5 o1 m3 f) ]- V3 s$ C6 e: N% C
. s! Q. O. u$ T  [5 t
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-11 15:08 , Processed in 0.103181 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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