新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 1036|回复: 0

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

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

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

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

x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
* f& f' a/ q5 V) ~4 y: v
Linear.png , ]' I+ F5 K5 b; f
实例
  1. def search(arr, n, x):
    0 D, Z) C( W$ o& F5 f- H0 Y
  2.   
    7 h+ q2 l8 L; H7 R4 Z  ^/ H
  3.     for i in range (0, n):
    9 o0 x' S( j# E- ^) A" {+ g8 C
  4.         if (arr[i] == x): 9 a6 Q% O7 \" E8 d9 O7 H, [
  5.             return i;
    ( |& |" K3 f: Z7 b7 j3 E8 h; f
  6.     return -1; ; v) S( s- k- \' p
  7.   
    7 I! n( K9 ]% B# k( v
  8. # 在数组 arr 中查找字符 D- b; y* P# z+ Y
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ];
    & R6 |$ }; H5 G& K3 q, `
  10. x = 'D';
    6 Q) u) M6 N, Q# ~% e- ^+ B
  11. n = len(arr);
    * T2 k. p3 B" ?* K% d0 D/ Z6 l8 d
  12. result = search(arr, n, x)
    * R2 P( ]9 g4 _- ~8 L' Y4 R
  13. if(result == -1):
    4 i9 b) @; i8 [5 V$ i3 G9 _6 y
  14.     print("元素不在数组中") 7 m' Z3 W% S0 R' F! i' I6 J: x' k
  15. else:
    7 A  a, J, p- @/ t6 n
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为& @9 {# N1 V) `9 V0 L6 d5 j3 w
  1. 元素在数组中的索引为 3
复制代码
5 f) n9 D& H1 h' l& Y+ o
案例1:
  1. def LinearSearch(list):
    : P2 e: W/ c# H, e+ r
  2.     num = int(input('Number:\t'))
    ; A3 p1 E% C9 ]; t0 u0 u
  3.     counter = 0
    + d+ t% [/ i  B+ c; [3 _
  4.     null = 03 R- P- i8 X1 N# `
  5. ) v( @- u& D( N( e( |+ @/ V) Y7 K
  6.     for i in list:
    " i  O+ H7 {9 A: c. b
  7.         if i == num:
    5 n' T9 }2 I, f- J+ |6 R  E. H
  8.             print('Find number {} in place {}.'.format(num, counter))( p: l5 _. o8 {$ |! H
  9.         else:
    : ]8 {( D& s! r  P) X
  10.             null += 1. ~, X/ P% j& m+ |6 q2 g
  11.         counter += 1
    ) G) k+ n3 T4 s: ^3 W8 U
  12.     if null == counter:
    / }7 W( G; X, N  ?% p3 o5 |  ^" I
  13.         print('Don\'t find it.')
    - |3 K1 T& ?1 y3 t; }) b
  14. # F* T/ [' h5 I( O
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
    * F5 Y6 B2 m* m6 Q7 [9 h- [
  16. LinearSearch(list)
复制代码
案例2  f) ^- m  E1 V6 J$ V$ i9 x
  1. def LinearSearch(num=50):
    ' U* m7 K, I) ]
  2.     import random: k: ^' o  V5 z5 _0 X, F
  3.     random.seed(888)# s, P# r+ p+ ~6 Z# G* ^9 j
  4.     data = []6 k( ?0 @+ p% r& u9 |
  5.     for i in range(15):
    ) W/ V! f$ t7 G7 V% y6 @2 t/ H
  6.         data.append(random.randint(1, 100))8 F9 u/ O, n% I4 `6 y7 L+ r+ X6 p0 R
  7.     data.sort()& r  K2 T1 K- ?% ~3 W' d2 }
  8.     print(data)
    ( R2 {7 H. h/ V" D8 J7 p
  9.     for i in range(0,len(data)):. H+ ~& `4 z! X8 U0 T% ^5 l8 D
  10.         if data[i]==num:
    $ d' g9 V. h9 e1 h$ B  H; n
  11.             print(i). f5 F# t9 Q: a+ v
  12.             break5 Y0 T3 y9 M- H  c  S
  13.     else:% @: ?8 W5 h) M1 \
  14.         print('查无此数')' ~  v5 p! V) y6 l$ W5 G
  15. LinearSearch()
复制代码
; r0 w: K4 [! _. N0 J$ p, O
" t% {! |. H! ^; l
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-19 18:07 , Processed in 0.096020 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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