新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 976|回复: 0

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

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

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

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

x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
4 G- ^/ b; @" O( X+ y
Linear.png
) l: K5 F$ E! q- {8 @& V; v' G. c: v实例
  1. def search(arr, n, x):
    : ]6 `$ d4 s1 j3 }- v; \
  2.   
    9 ]  c, n! I% `2 V+ k
  3.     for i in range (0, n): / q! n5 E1 O! V" G
  4.         if (arr[i] == x):
    2 {3 J, }* x: y# f( E
  5.             return i;
    2 z5 K# ^% A+ M; n% D' \
  6.     return -1;
    # S- F- |( O2 K  N! g
  7.   8 a6 q' T+ {* ]* q$ ~7 v8 x
  8. # 在数组 arr 中查找字符 D6 ^7 V7 w9 E, v6 L
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ]; + @1 N( N& Q! E
  10. x = 'D';
    0 n% C6 ^$ g% Z# ]0 b2 G
  11. n = len(arr);
    ( Y0 J; r" C0 L, S/ }2 s7 Q9 n
  12. result = search(arr, n, x)
    ( ^+ d  y" d* S6 i  q
  13. if(result == -1):
    $ t  N* c- J: e! I! [  z* V
  14.     print("元素不在数组中") 9 }/ E7 Z( |+ \& y
  15. else:
    , G" f+ {4 P# z/ [
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为; j0 R' N5 _" U- q0 b
  1. 元素在数组中的索引为 3
复制代码

% b: R. E' N6 ]' N5 ]案例1:
  1. def LinearSearch(list):& _. D. f9 ^' y
  2.     num = int(input('Number:\t'))
    + d* Z1 g" x& `* q* q
  3.     counter = 0. i5 b1 F, E9 Y2 Q' K
  4.     null = 0! D9 m/ X/ K& I8 w* e& X

  5. , C1 J0 T: g' o. p  e7 m( H
  6.     for i in list:
    3 z( ?$ ?8 U5 n3 k& f! N* {  c
  7.         if i == num:
    , @1 ^* X4 }4 g+ L( \1 A
  8.             print('Find number {} in place {}.'.format(num, counter))4 i2 g$ v# @8 Z# N; I
  9.         else:  O- e0 c  Q" ^2 T
  10.             null += 1
    3 I, f0 V. x+ Y9 R' h
  11.         counter += 1
    " @( W/ Z0 R  D, L6 t! n) J  Z
  12.     if null == counter:4 {5 o6 n: {$ e( \
  13.         print('Don\'t find it.')
    3 }& w* p  \3 T9 \4 d! x3 a
  14. * q5 U2 B6 }6 |( C, `+ C& h# b
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]$ n' U$ B* F3 S: G/ _
  16. LinearSearch(list)
复制代码
案例20 |5 y( @6 |+ m" X1 _
  1. def LinearSearch(num=50):
    : F; p! O, G7 q0 n: C
  2.     import random# q4 ?& q. j$ W3 M# }4 R
  3.     random.seed(888)
    % v8 \' U# r; }% D
  4.     data = []
    * i  A: t  ~# o
  5.     for i in range(15):
    + C) {1 r, j1 ~
  6.         data.append(random.randint(1, 100))$ y  A2 c3 g9 T# |' J* i8 Q( e8 k
  7.     data.sort()
    3 I9 [  F7 N* D4 ^
  8.     print(data)2 \2 ?. v  d: p+ ~
  9.     for i in range(0,len(data)):" `/ ^* P5 k7 [/ b# x. g6 l
  10.         if data[i]==num:
    ' [1 h& r& U8 B# W9 o; U
  11.             print(i)
    2 B! l9 a7 v3 Y
  12.             break& U& }9 Q& l$ H9 _" H+ Y2 i
  13.     else:
    - H; n3 x1 b2 K# b6 e$ U
  14.         print('查无此数')
    0 j* h  D% U, h( f9 ], F1 m/ r$ q
  15. LinearSearch()
复制代码

/ P+ ~, P" z7 h% L8 k# o2 U1 |: I1 x! H# ]! A
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-14 21:54 , Processed in 0.086400 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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