新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 1046|回复: 0

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

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

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

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

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

* c: U" J! a& x! l4 B0 v4 m Linear.png
$ i6 w6 y7 L1 F3 i2 Z, |4 u! u# u实例
  1. def search(arr, n, x): 8 t4 B$ I: {, ]% ?; _( [
  2.   
    1 n0 z8 r( G2 g: t6 t
  3.     for i in range (0, n): 8 Q2 y, Y, [5 f$ g
  4.         if (arr[i] == x): $ S) U! Z; s6 L& ?
  5.             return i;
      I1 }+ ?5 W, f
  6.     return -1;
    & _* j7 c# s- S% m1 U! X
  7.   
      g# b+ ?. [8 l  \- |$ m
  8. # 在数组 arr 中查找字符 D8 Y. L9 y1 M" G& @4 T- V! `' E
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ];
    * J; w( I- s/ s% U  F
  10. x = 'D';
      Q, B+ L4 V" `5 G: S9 A
  11. n = len(arr); 0 g, Z: O. @8 F5 N9 k6 O9 `0 q
  12. result = search(arr, n, x)
    - K! R* S0 O8 c( l6 q* X8 S  V
  13. if(result == -1):
    * O0 o% x! C' c% u3 x
  14.     print("元素不在数组中")
    + h( V# w' }+ {7 o1 z" j" v; L
  15. else:
    % f. E8 t  V* ?# f# C, |+ ]
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为
" F( k2 \5 r! H
  1. 元素在数组中的索引为 3
复制代码
* `) R/ M/ [) j. F
案例1:
  1. def LinearSearch(list):9 N( ]$ ~# K4 p; F; z( p
  2.     num = int(input('Number:\t'))
    ' [1 Z' e* c$ c& ^  x
  3.     counter = 0
    $ f2 s: j7 E( ?. [6 C9 ~
  4.     null = 0
    ! w% K' g  ~& B& F1 [* U

  5. & L) {# p# X( \  q" `6 q* W2 B- X/ s
  6.     for i in list:" q( v$ R7 f0 ?7 l( |
  7.         if i == num:( O6 e; v% g% M6 p
  8.             print('Find number {} in place {}.'.format(num, counter))2 x, @5 y+ U: n- Z; j
  9.         else:
    ; N/ A$ |0 I8 K, D0 }2 ~7 ?( p( L, a. u
  10.             null += 1
    ; J* w. \. t- }' I8 Q& `
  11.         counter += 1: W( ^6 T$ M) ^  ?+ U
  12.     if null == counter:. B; z! ^# X% M. I5 i, w
  13.         print('Don\'t find it.')( b0 S; R& ?) O2 A9 O

  14. / r2 p, ^0 S9 N5 ?% j
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]6 s; d! i8 k/ A! [3 l9 B  ^
  16. LinearSearch(list)
复制代码
案例2
" ^  r+ t9 u. S1 a* ~5 |
  1. def LinearSearch(num=50):
    - X0 ~$ f; d, |: n! T( l
  2.     import random3 m2 p/ u0 A3 X6 R5 Q
  3.     random.seed(888). l  s, _* x4 ?* Q
  4.     data = []* L* J. _2 q0 G2 x1 f  g- ^: j
  5.     for i in range(15):
    + D+ j4 F7 D7 r: x1 B' w
  6.         data.append(random.randint(1, 100))8 m/ e% w2 ]2 r  ~
  7.     data.sort()2 Y& q% |; K7 {& @  O/ W# {1 D
  8.     print(data)
    : |, ], y, J, D7 }
  9.     for i in range(0,len(data)):- W" R, |+ ~# o
  10.         if data[i]==num:
    6 b2 u7 A$ ]4 Y
  11.             print(i)- U$ o& E9 V. y$ M! B3 S1 e$ z1 ]
  12.             break
    7 R- E) ^6 Y; A- }! [) P0 |
  13.     else:
    : K% k: i) ^- H8 R: f: ^! n
  14.         print('查无此数')) N' w) b: t% o* o' ^  Q
  15. LinearSearch()
复制代码
" v( |2 ?, o* n5 L2 D% R- I

9 q8 |0 s" x6 v/ F) G6 u" [1 j
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-24 17:24 , Processed in 0.228739 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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