新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 1040|回复: 0

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

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

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

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

x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
! q6 g. x8 y+ S
Linear.png
* }' ~8 [! r# {/ U, K9 J实例
  1. def search(arr, n, x):
    0 W  m2 H; M4 ^
  2.   
    2 I& V! r5 H' r
  3.     for i in range (0, n):
    & x  `6 |- i. O$ i% t
  4.         if (arr[i] == x): 2 l, w! K* B; W! c5 Y2 e7 j
  5.             return i; 7 I: Y8 p+ ^" _: C$ q% a- N
  6.     return -1;
    6 G, T8 i( Y( e0 D, ^4 S9 z
  7.   
    / o' G, G8 ?; k3 `
  8. # 在数组 arr 中查找字符 D1 x  g0 U: ]) i2 u! U
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ];
    * O! A2 L+ r+ t8 W6 @. B* T+ n
  10. x = 'D';
    ' |" d' x) ]/ K3 w: o
  11. n = len(arr); / O2 ]& A' m6 o; h
  12. result = search(arr, n, x) ! |- c0 V6 q! i" ]1 k* l
  13. if(result == -1): ) y& Q1 v# q( g6 c5 R0 D  G2 ?; v$ T
  14.     print("元素不在数组中") ' T- C3 C6 F* k9 V* C6 d
  15. else:
    2 u# i. O2 h' E/ y
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为  H1 r" v& V( L6 m; a+ q
  1. 元素在数组中的索引为 3
复制代码

# i8 D2 B% c" t$ w0 t' n案例1:
  1. def LinearSearch(list):
    1 ?; A& @2 T  R7 M  e0 x: o
  2.     num = int(input('Number:\t')). P# H) t- w, q  |' Q! ?
  3.     counter = 0
    # t3 P9 G4 x$ E/ ^0 I1 I
  4.     null = 0
    $ s1 x1 q; z6 I" `7 m3 S
  5. 4 w- C$ f$ C* w3 S
  6.     for i in list:
    ) d+ p6 b% ~3 o- w: ?6 P" K
  7.         if i == num:
    ! d7 b" ^: R2 R, w3 }( T
  8.             print('Find number {} in place {}.'.format(num, counter))( K6 u: Q- N4 {# ^! o/ j0 N
  9.         else:
    # Q/ ?2 ?2 L' [+ n
  10.             null += 1  b* r$ J" \$ t7 q+ s+ H' }
  11.         counter += 1+ d+ f, D! x: L3 @& N
  12.     if null == counter:
    . n; t4 J. H' r" S/ P% f" K5 ~
  13.         print('Don\'t find it.')/ P& ~5 j: }1 n% V: W! d
  14. ; P2 L0 q- F: |# Q% k6 S# i3 {
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
    . s$ Y, a8 i( S! \
  16. LinearSearch(list)
复制代码
案例2( H: C! S# {) i9 i) S) [
  1. def LinearSearch(num=50):8 X7 N, G1 X. z9 c6 n8 |9 P
  2.     import random& k2 t& F6 V$ v" W7 z
  3.     random.seed(888)7 M' Z% T1 j- z. J, s8 o
  4.     data = []9 v- |+ E8 L/ w( z2 r
  5.     for i in range(15):8 R! k% V0 S& O5 t+ G
  6.         data.append(random.randint(1, 100))# {& }2 o& |+ M
  7.     data.sort()6 N. P6 F7 X) h% S  j& I
  8.     print(data)8 i) |, X+ i/ T/ D
  9.     for i in range(0,len(data)):9 g$ ]3 b( _: i" D
  10.         if data[i]==num:
    : c4 p/ F  z4 X; M& q) ~2 h0 r6 j
  11.             print(i)
    / g* c" v3 x/ t2 b! f
  12.             break
    $ s: p. C& ~7 g; `$ L
  13.     else:
    5 n4 O% t) y3 ?7 Q
  14.         print('查无此数')
    ) O+ J5 f5 A5 V. v  z
  15. LinearSearch()
复制代码

- E( @6 F. S! _" z2 j& N+ ?/ M" F5 \3 B0 U
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-21 10:31 , Processed in 0.098314 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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