新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 964|回复: 0

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

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

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

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

x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
" d" ]8 V& k4 @- C- M. B
Linear.png
% `3 @4 u" }1 V% U" v实例
  1. def search(arr, n, x): / P& w, T1 R- f' C
  2.   ' n4 D5 O# e  o  X9 `/ b
  3.     for i in range (0, n):
    / Q: ^1 B, ?$ k- D1 W$ ], _
  4.         if (arr[i] == x):
    % W& q0 ]  q- L! T( t" n
  5.             return i; $ B8 Y' o; l& h" d% q
  6.     return -1;
    1 p  A6 Q6 e2 _5 F$ X" \. T
  7.   
    5 B& k6 H9 u4 A) |. [: }
  8. # 在数组 arr 中查找字符 D
    , B8 n; L2 p4 D7 b" j. T
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ]; ! K+ L( U; z1 Z9 M  _7 c
  10. x = 'D'; . ~- N: T3 `0 g) _0 P
  11. n = len(arr);
    ) R+ O7 |/ U' G+ O  n/ L* f$ R) l! U
  12. result = search(arr, n, x) % c: ?1 V' f# Y: Z; q  p: y/ R: G& J: g
  13. if(result == -1): : j# Y8 f% D$ f
  14.     print("元素不在数组中")
    ( b; Y* |( a; U, ^
  15. else:
    6 r" ]: ^8 u' j. A3 f
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为
8 B8 S0 F$ @( f( _/ Y( H
  1. 元素在数组中的索引为 3
复制代码
. [2 r( T+ D" s
案例1:
  1. def LinearSearch(list):
    5 E8 T" F5 N; T* v' o
  2.     num = int(input('Number:\t'))
    ; _; E: \, N0 c# A7 f% k% _8 j) e
  3.     counter = 0
    / Z! `. P' |& N+ Z' Q
  4.     null = 0
    * q9 L9 ?9 R2 D; u0 i0 @

  5. , k$ t3 L5 D; m% A$ @9 X
  6.     for i in list:( j; _$ K. u$ b
  7.         if i == num:5 I% s! T8 o" ~8 L, O/ x" u
  8.             print('Find number {} in place {}.'.format(num, counter)): W+ V5 K, |2 \( Q/ B
  9.         else:/ X( s. Q# w/ X/ s. D) d
  10.             null += 1
    $ d) ~& s/ M* ^: ~/ m& A
  11.         counter += 1
    7 T8 ~" v4 [: f% W7 ~9 m
  12.     if null == counter:
    ( Z! `. ^: j0 d1 h; O5 Q
  13.         print('Don\'t find it.')
    * p5 m+ W. ], J8 h) v( N) o# U! u
  14. * N$ \! n- m* L: V0 ]0 |& D' o
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
    3 p( P& R0 z+ f- k( Q
  16. LinearSearch(list)
复制代码
案例2( q9 e6 D3 L. S6 ?: j2 J
  1. def LinearSearch(num=50):
    5 A5 [) e0 J. m8 `7 G" h3 B, E! Q
  2.     import random% f% g. F# u5 J3 A$ y$ l
  3.     random.seed(888)
    : M- L4 E7 g1 B% {. n
  4.     data = []
    7 ]  t- H2 |3 }. |' \+ W+ q( k
  5.     for i in range(15):' |4 {3 J" k+ U( @+ Y
  6.         data.append(random.randint(1, 100))0 Y( H- |+ x4 [
  7.     data.sort()
    3 ?/ C) N! H- c: s3 i7 ]# A# R
  8.     print(data)
    6 D+ Z# L+ b$ v/ w! Z* ^
  9.     for i in range(0,len(data)):- M! r! g1 q$ l+ D: N! O
  10.         if data[i]==num:) y9 i; ~% F5 X4 @: H5 j3 y
  11.             print(i)& Q3 F& b) [- i- r: }$ Y
  12.             break/ m0 g1 t; {; i
  13.     else:
    # `+ `) S- }2 \4 A
  14.         print('查无此数')( h) z. e/ V$ v3 x9 {2 l
  15. LinearSearch()
复制代码

2 j/ [. C+ N7 w" n1 i' c( Z! T2 ^+ [( a
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-8 07:13 , Processed in 0.082135 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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