新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 1053|回复: 0

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

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

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

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

x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
. i: z& s! N9 ^4 Y; s$ \9 ?
Linear.png
$ H) v- I8 M$ _实例
  1. def search(arr, n, x): ; p1 K( A1 a% @" b, T# \
  2.   , @8 V. `: f; a! o+ L
  3.     for i in range (0, n): 7 c) z/ y4 U7 z! O
  4.         if (arr[i] == x): ' }: V, A+ J! d7 B% D8 s' p
  5.             return i;
    2 Y3 A& b, c8 g3 B# O. d
  6.     return -1; , A7 m/ s" n8 l3 n, N
  7.   ' q, o2 Z+ y) _( n* P' ?$ W
  8. # 在数组 arr 中查找字符 D
    , b4 Q, s7 W! O, k
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ]; " S' c, c9 I. C0 U5 L. U: U
  10. x = 'D'; " [7 G" H) I) Q
  11. n = len(arr);
    , U0 o* J0 b- o
  12. result = search(arr, n, x) , M4 c  u+ \( M; W
  13. if(result == -1):
    ' \( N; U: t* X( B. F
  14.     print("元素不在数组中") 6 [7 B, B0 z2 x2 ?4 T" j& _
  15. else: + R* E7 P( m% U$ ^% a8 ~. y2 Q+ x
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为
7 C  _8 q, K5 D0 l' p+ p, z9 X1 J
  1. 元素在数组中的索引为 3
复制代码

! M! g7 }; t, N8 [( Y& V9 g  @案例1:
  1. def LinearSearch(list):2 x2 r- R) V5 j/ h. Z6 v
  2.     num = int(input('Number:\t'))' a) c% y! V. o6 s( i
  3.     counter = 0
    , J; E2 u4 c! n  l
  4.     null = 0
    & e& @" M' [3 D! v1 _: h: b; d1 q
  5. * M! p5 I# @+ C
  6.     for i in list:
    7 E$ x+ K2 Z, ]* r9 Y
  7.         if i == num:! ^' G7 o7 F  v5 I) q, W; ]3 [9 i; J
  8.             print('Find number {} in place {}.'.format(num, counter))
    4 }, E- W, C, V% m; M- u
  9.         else:
    8 K- j- T4 [7 o  d  p9 }/ `
  10.             null += 10 F  F6 L& z, I* q) V7 k; Y
  11.         counter += 1
    . X4 s9 u4 T7 o" e. U" h$ q9 M
  12.     if null == counter:" }1 `) m; T' f1 S, Z; I# C+ X& ?
  13.         print('Don\'t find it.')$ [2 I3 N/ H) x/ {2 `: A

  14. 1 F& V' {, D3 {* B
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]9 a, T  H- X0 f( d# A' b9 l, W
  16. LinearSearch(list)
复制代码
案例22 o" W( e0 Q/ G
  1. def LinearSearch(num=50):  u# F  q8 N1 O7 a" \
  2.     import random+ A3 q5 y1 @1 C$ q, P
  3.     random.seed(888)
    & d( e8 z' ]/ Z* J  W. w' y
  4.     data = []" H) g2 ~2 d* X2 @
  5.     for i in range(15):
    ) w1 V1 i- x2 `- s) ^) c
  6.         data.append(random.randint(1, 100))
    , P# C! G2 m/ o. q. H
  7.     data.sort()
    2 [9 `4 z- G: U+ v
  8.     print(data)
    : b4 j/ c2 ?# s2 `; v6 I6 M
  9.     for i in range(0,len(data)):
    6 v9 y; X0 \4 t# b' n
  10.         if data[i]==num:+ [3 }$ H% r3 L/ f: Q! s% p
  11.             print(i)% f4 q3 h& t" k: O4 _$ T' ]# l0 S
  12.             break
    / u: }* Z. V2 |2 L9 H2 s; t" _
  13.     else:
    ) f8 R9 G! S3 c' w
  14.         print('查无此数')
    # Q& q! h0 Y% g; X5 a$ ^# Q$ {
  15. LinearSearch()
复制代码
' a% ]( c4 `7 o' a. A, ]4 g3 X
, R4 k8 i, e/ R2 _$ y3 W% w
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-27 12:16 , Processed in 0.093409 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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