新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 1005|回复: 0

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

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

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

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

x
线性查找 指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。
7 J7 b9 y! o( O" }( v
Linear.png 8 a. i! {: `# O6 z
实例
  1. def search(arr, n, x):
    0 h1 g6 e$ b" a' p& k5 C* d
  2.   
    2 N9 T$ c  C" N
  3.     for i in range (0, n):
    8 J, h* e5 D1 r
  4.         if (arr[i] == x):
    5 }* i. g- j* x& l6 G3 F& U
  5.             return i;
    ' g* G- f0 K& g6 S
  6.     return -1;
    $ C5 b& b: @2 d: b) P6 ~" h
  7.   3 S4 u' E5 w# f  w6 v% ?* ^- K" @$ j
  8. # 在数组 arr 中查找字符 D
    7 x" T$ x% R. G9 w* Z) h1 y9 ?" |' N
  9. arr = [ 'A', 'B', 'C', 'D', 'E' ]; . F+ ^3 p0 K4 U; r/ p1 O
  10. x = 'D'; $ I( d4 s$ m8 D' \+ a; f8 [
  11. n = len(arr); " E' T* z( Y( k( O
  12. result = search(arr, n, x) 0 e" L# k. |' Z( B, l
  13. if(result == -1):
    8 |/ l: T/ y: K- o+ u3 i& y
  14.     print("元素不在数组中")
    6 C$ O* A& _0 O" S* E$ }" u1 h4 a
  15. else: / x8 I+ `# O5 o7 v- F1 _0 q0 }) d
  16.     print("元素在数组中的索引为", result);
复制代码
执行以上代码输出结果为/ e4 G0 y% K; p4 P1 w
  1. 元素在数组中的索引为 3
复制代码
% r, m* i6 \! N: W$ P
案例1:
  1. def LinearSearch(list):$ w% t( k# {  u' `) o
  2.     num = int(input('Number:\t'))+ Z9 @) z2 ]; @' x3 W6 L! I4 F
  3.     counter = 0
    - q* b+ i1 ^. e& V. X) H( H
  4.     null = 0: N! N8 y6 I- G7 W8 T5 N- c
  5. 0 V9 u9 k7 j5 d' L7 F7 M9 F, R3 f# r
  6.     for i in list:
    3 z: @& @2 }( g  x) M
  7.         if i == num:
    7 k$ O& Q0 k# j  Y: s. n
  8.             print('Find number {} in place {}.'.format(num, counter))- }! X6 G5 c1 J% N+ P
  9.         else:( {3 `) N( e7 ]" V
  10.             null += 1
    4 H% l) c) {- `4 \- ~9 K
  11.         counter += 1
    0 @, k8 p$ p5 H1 J" i$ F1 m) I( Q
  12.     if null == counter:: Y5 y  t$ M! X/ O0 {0 m+ y5 o3 c
  13.         print('Don\'t find it.')
    1 J. Z! M; _) m$ U1 T
  14. 3 U. {& n, ]- P7 a5 K  x
  15. list = [1, 2, 5, 7, 8, 34, 567, -1, 0, -1, -3, -9, 0]
    # a2 b2 S3 w: Y3 [! V. t! Y
  16. LinearSearch(list)
复制代码
案例2
! Q! v0 h$ R; ^7 j- r
  1. def LinearSearch(num=50):/ p  q; m( |5 G) w8 }" `9 B
  2.     import random
    0 q4 e* p  d- E: A/ `9 X( l9 |  v* i
  3.     random.seed(888)" a% l! c6 D9 P0 w: D8 W4 n% ^
  4.     data = []
    * O% K* j& m3 @: D+ T( H+ L+ W
  5.     for i in range(15):6 y; p/ K" Q- L7 U& s
  6.         data.append(random.randint(1, 100))
    8 z' ?* U  u- d6 p. Z. y" g
  7.     data.sort()( x+ `9 E5 C. A5 C3 P$ C3 u* o
  8.     print(data)
    1 H$ [/ E3 [# l  H6 F) K; J9 E
  9.     for i in range(0,len(data)):$ P4 `% L! r6 B  D# L/ U. ?4 y
  10.         if data[i]==num:4 k! G! W: ], F" }& t: J, T
  11.             print(i). u3 J' [/ B, ]' f/ I" p/ {
  12.             break- R& S% Y) T; \, W* [
  13.     else:
    4 Z8 n8 I. u" M+ O5 m  a. P$ @
  14.         print('查无此数')
    ; }" ?$ F! i! h) h: n  x
  15. LinearSearch()
复制代码

5 Q/ m) n" ?! p- m% X0 d
% Z. ?  u, N+ }' M0 Y4 p' s( L
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-21 23:55 , Processed in 0.090154 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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