新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 1022|回复: 0

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

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

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

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

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

, |) \2 `! x7 S# X- c Linear.png
6 T, \# i5 ^0 ?实例
  1. def search(arr, n, x): ' I' ]* g- b9 `& U2 G3 ~( b7 m
  2.   
    * u/ B$ q" N  I! h* e/ W
  3.     for i in range (0, n): ) ]( M2 j/ v7 E
  4.         if (arr[i] == x): 6 B3 J9 `5 M4 O( a5 h. F6 @, s
  5.             return i; # \% R/ x/ w# \; d  @5 T! t8 R* T, R
  6.     return -1;
    7 J% d, W! K0 }1 M
  7.   * b' f3 K1 E' _/ ^4 d; B% u' \
  8. # 在数组 arr 中查找字符 D
    7 J7 F' c8 `! f
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ]; ; `- ?, V& K6 L6 p; a/ Z$ `# V5 X
  10. x = 'D';
    1 f: w3 a0 l+ k. B' a
  11. n = len(arr);
    & d4 v! e8 v" k; ~& d: x2 {, I
  12. result = search(arr, n, x)
    * e2 B; |& q6 C6 Y0 D1 j1 c! N
  13. if(result == -1): 8 Y$ ~6 s4 Z9 ^5 N( ^8 y4 p) B
  14.     print("元素不在数组中")
    9 x+ [& Q& w% l
  15. else:
    + _& o; s! c* B! s' V2 Z% O6 q
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为% t9 |! z3 ~( `/ g5 k7 ^
  1. 元素在数组中的索引为 3
复制代码
. {. K  [3 x  P2 H
案例1:
  1. def LinearSearch(list):
    / V& N# R5 F7 \0 ~  b
  2.     num = int(input('Number:\t'))
    " S1 a3 L/ V1 o) c, j
  3.     counter = 05 K+ ?& g, y+ f
  4.     null = 0
    / ]- Y  U0 G) [

  5. ' _# c3 ^9 j  m$ U9 a
  6.     for i in list:
    0 L' l3 M. @" e0 b3 i) ]6 _0 e
  7.         if i == num:
    5 D& C& k8 n# g$ v( u
  8.             print('Find number {} in place {}.'.format(num, counter))- z! H6 ?9 T& V
  9.         else:
    % W7 M7 c, b9 C! s2 R
  10.             null += 1
    + k- q9 M  `# O- S# i
  11.         counter += 19 p, m7 a& p  ]
  12.     if null == counter:( H5 a" x& o' R/ A1 z9 C# ?9 z3 T; [' z
  13.         print('Don\'t find it.')
    9 M. c( M* ^( D& _, A

  14. 8 d7 \) x6 k7 z9 }* i" s: z
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
    . R' u4 D+ m* }
  16. LinearSearch(list)
复制代码
案例2
  T! J' R5 e7 u. J* F
  1. def LinearSearch(num=50):
    5 H1 K5 K) }. {( e/ m0 A+ p3 x& ]
  2.     import random
    . J& g; T% ?' M/ ?. W# S# K
  3.     random.seed(888)
      z6 X9 e& q% m; @' s, G) Z9 p
  4.     data = [], R9 E/ q# b* s: Y5 U% F  [
  5.     for i in range(15):: T3 E2 S: P% Y; e
  6.         data.append(random.randint(1, 100)), p4 t+ r% ~7 @6 B) e+ n
  7.     data.sort()/ B# ^, v  f. ?
  8.     print(data)
    ' H* b  z5 e8 X! y) B
  9.     for i in range(0,len(data)):
    & L9 I9 P, _! J8 j9 \4 O
  10.         if data[i]==num:$ n1 ~& X' W1 R" ^! t% \( X2 w
  11.             print(i)
    ! v3 j2 M' I1 f8 T  L" q, S2 j
  12.             break
    4 _- B- \& r2 L! J$ n0 \
  13.     else:
    6 n0 ^# K0 _. w# f$ m: R
  14.         print('查无此数')
    ! J( }, \8 |1 S/ p
  15. LinearSearch()
复制代码
9 T, m4 \$ [$ n* ?
5 v8 C8 }% \- H
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-6 08:04 , Processed in 0.111070 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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