新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 1023|回复: 0

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

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

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

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

x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
$ L( W4 w$ f$ }/ z0 i+ ^8 @) A" S# j, V! U
Linear.png
8 P, Z! t$ s* S& g* C6 ?8 P4 G实例
  1. def search(arr, n, x):
    # u) u* s7 w" |8 I; ]1 h1 {
  2.   8 }3 b+ \  d0 c7 x' U# ?# w; A9 Z
  3.     for i in range (0, n): . Z& r  M0 D+ h+ n2 V8 w  U
  4.         if (arr[i] == x): 1 ^7 j: N7 f, p" l
  5.             return i;   e6 V2 B0 `- _$ a7 \! k" J% r; B; y  X
  6.     return -1; $ f  i3 w% }7 Z1 ~0 }
  7.   
    8 h3 [6 m+ F+ g* q% i& f5 D: k
  8. # 在数组 arr 中查找字符 D
    + D6 ]. ?3 V; d% @2 i
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ]; ) l+ I! M: f! c- V8 k
  10. x = 'D';
    ( w" _" h& i! [- d, S
  11. n = len(arr);
    . M1 k: D+ c; l+ x2 q/ m
  12. result = search(arr, n, x)
    ; L- V9 n9 y3 Q, Z/ C- a
  13. if(result == -1):
    / L( B" S: Q1 `
  14.     print("元素不在数组中") & d. h2 ~/ u6 c  j; Z. e% X
  15. else: 0 K4 B/ O5 h+ N! h2 Y6 c+ ]
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为
  \+ E- o: J% o+ d% E
  1. 元素在数组中的索引为 3
复制代码
& y, @, ], o$ q* _2 |
案例1:
  1. def LinearSearch(list):
    9 n! Y5 `% C4 D8 g
  2.     num = int(input('Number:\t'))
    + H  g/ |) E# V3 e
  3.     counter = 0
    ! `2 N) |# Y& ^3 `# F' R6 N2 q0 ^
  4.     null = 0. U( d! ^5 o; Y  s! q/ o+ L' g$ r

  5. % I6 F" t6 _: F7 l
  6.     for i in list:
    ) S: t/ Z0 h* L5 O
  7.         if i == num:, s& Q1 r) _; ]$ S! i1 v- S! E5 z
  8.             print('Find number {} in place {}.'.format(num, counter))
    . y$ ~, f3 A7 c3 h$ Y: l, c; T$ v
  9.         else:" V% l; z& V" S" G4 g% }  S* a8 A
  10.             null += 1
    3 K$ U* M7 C0 |/ E8 C
  11.         counter += 11 `% M# q. k7 _- ?4 h  Y
  12.     if null == counter:8 R% f( y& K1 Z3 Y& w2 d9 V
  13.         print('Don\'t find it.')7 c& d* s' ~& C9 O9 W9 q0 F7 ?
  14. $ o+ A8 |3 T: l! M( l
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]- e( o7 l9 C" N. N* c
  16. LinearSearch(list)
复制代码
案例2
+ G& m  g7 f5 [$ O# a- Y' D
  1. def LinearSearch(num=50):, s0 d1 D/ b* P2 Y& j3 r. i2 X
  2.     import random
    4 y, ^" M2 p- g: `  |9 E
  3.     random.seed(888)
    , |4 Z0 s3 \" C" f" ]6 D  X
  4.     data = []7 X% O. K& N$ G7 t9 m
  5.     for i in range(15):
    ! g. n- _4 k5 R9 _! T% b1 t9 P9 p% e
  6.         data.append(random.randint(1, 100))7 n  B& T8 V" o1 Y2 a
  7.     data.sort()
    6 e1 Z& N4 V# |+ A$ y' F4 V; V8 k  t' h
  8.     print(data). u- v6 c" y8 z0 l) V: N9 B1 p
  9.     for i in range(0,len(data)):
    8 s3 b! e8 S& l: Z. t! G! o: w
  10.         if data[i]==num:2 Y; i% V) E, H, I6 B
  11.             print(i)4 ]/ q3 D6 b, |7 G% @4 ?- T5 |1 g# j
  12.             break
    * |/ j! G! R% x
  13.     else:
    ; A: S5 E3 L- w9 n  |
  14.         print('查无此数')
    9 ?# f+ i$ J& E  A
  15. LinearSearch()
复制代码

8 o% ]& Y1 Q& y4 b" {4 }$ y0 G: n9 j' _5 ~# J8 J
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-6 13:50 , Processed in 0.098725 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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