新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 1062|回复: 0

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

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

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

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

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

" S9 [/ ]* T9 F+ B  m Linear.png 9 f6 A9 H( j+ c6 n- {4 F3 R
实例
  1. def search(arr, n, x): % k0 B) g( H5 \' _& N1 P
  2.   3 U+ W; [) W' m
  3.     for i in range (0, n): 5 w" `2 C9 Y4 J# Q
  4.         if (arr[i] == x):
    + `9 i; k) Y0 G
  5.             return i;
    2 U( L3 R/ l. m5 F. h& M: q/ E
  6.     return -1; + Y* o3 S# K3 W* h, o( L8 z' ]
  7.   
    % N' ]/ S$ }  x; I. ?5 x* d
  8. # 在数组 arr 中查找字符 D1 X3 ~1 |5 n1 G# B$ ]' I
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ]; $ B! `" p0 D- T+ ^/ |/ Y' F3 y: `
  10. x = 'D';
    ! c  R/ V& u8 e8 E7 k3 I
  11. n = len(arr); 1 P- O! y  |; r3 L
  12. result = search(arr, n, x) 5 M6 f/ w. ~5 J$ a
  13. if(result == -1):
    ) f* |- w. H; \. H% {
  14.     print("元素不在数组中") / h- Q. d) l0 m& A& v' ?  i1 e; T' h
  15. else: ' c7 G- K4 C0 |% G1 b) S
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为& L' h3 m9 u' ^, C
  1. 元素在数组中的索引为 3
复制代码
% u* ]4 U9 A. G* `4 D) M9 C  ^) A
案例1:
  1. def LinearSearch(list):
    3 L6 X  c2 u- N6 i
  2.     num = int(input('Number:\t'))
    ) e+ s8 \9 S( p# K
  3.     counter = 04 n: o& w8 y4 @& |- E# c# v- X
  4.     null = 0. u% W( X9 I3 e* i
  5. $ @6 |) K1 u! p
  6.     for i in list:
    # J6 @3 v! K2 O0 H0 q; Z  ^
  7.         if i == num:5 ^/ M) ?( c% c6 y
  8.             print('Find number {} in place {}.'.format(num, counter)); y/ b5 |+ q7 @6 l( u2 D5 e
  9.         else:
      G5 T3 ?, t# n* H
  10.             null += 1
    6 _3 A, d; Q' Q  \+ J
  11.         counter += 1
    : T5 U, Y3 U* h, L" B0 s: }
  12.     if null == counter:/ Y0 c$ |0 V8 J
  13.         print('Don\'t find it.')
    1 L3 }2 \) U$ `8 N% L9 |  u  q

  14. # V; `( \5 f0 X7 T$ b2 B
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]) O- w3 Y# Z( i
  16. LinearSearch(list)
复制代码
案例2
3 W1 N3 \; n4 z$ o: [! \! E
  1. def LinearSearch(num=50):
    , ^. D) A& T/ ]' L
  2.     import random
    3 `# \/ r" ^: k# C3 T
  3.     random.seed(888)/ b6 ]7 v: a# c' [. u
  4.     data = []8 \* H( Z: J7 F0 C# \2 V
  5.     for i in range(15):8 @3 }6 ?" i0 t
  6.         data.append(random.randint(1, 100))* t  `, ~+ E. w& C+ b8 \' z0 k3 N7 f
  7.     data.sort(); \' p" P0 X0 z4 ~6 U0 e9 @
  8.     print(data)4 R2 K) a0 z& Y0 A
  9.     for i in range(0,len(data)):3 ]' l( s' D: x4 S  F1 h* w" |
  10.         if data[i]==num:
      s6 c( H6 `- V3 }. Z- L5 l
  11.             print(i)) f: O1 ?4 Q. O: g, v" |! Z
  12.             break
    8 c" c! H% l2 m4 P
  13.     else:
    ; k# _. w8 ]$ ?* F% n) T
  14.         print('查无此数')
    4 ?, N: o" b7 d
  15. LinearSearch()
复制代码

! [1 V4 b3 O# r& Q- }% V5 U4 _5 l& \1 L# t& c$ n$ A" D
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-1 19:18 , Processed in 0.089903 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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