返回顶部
首页 > 资讯 > 后端开发 > Python >python 基本算法
  • 829
分享到

python 基本算法

算法python 2023-01-31 02:01:59 829人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

一.无序表查找 def sequential_search(lis, key):     for i in lis:         if i == key:             return lis.index(i)         

一.无序表查找
def sequential_search(lis, key):
    for i in lis:
        if i == key:
            return lis.index(i)
        else:
            continue
    else:
        return False
if __name__ == '__main__':
    LIST = [1, 5, 8, 123, 22, 54, 7, 99, 300, 222]
    result = sequential_search(LIST,1231)
    print(result)
    
二.有序表查找
1.二分查找(Binary Search)
def binary_search(lis,key):
    low = 0
    high = len(lis) - 1
    time = 0
    while low < high:
        time += 1
        mid = int((low + high)/2)
        if key < lis[mid]:
            high = mid - 1
        elif key > lis[mid]:
            low = mid + 1
        else:
            print("times: %s" % time)
            return mid
    print("times: %s" % time)
    return False

if __name__ == '__main__':
    LIST = [1, 5, 7, 8, 22, 54, 99, 123, 200, 222, 444]
    result = binary_search(LIST,99)
    print(result)
    
2. 插值查找
二分查找法虽然已经很不错了,但还有可以优化的地方。
有的时候,对半过滤还不够狠,要是每次都排除十分之九的数据岂不是更好?选择这个值就是关键问题,插值的意义就是:以更快的速度进行缩减。
插值的核心就是使用公式:
value = (key – list[low])/(list[high] – list[low])
用这个value来代替二分查找中的1/2
def binary_search(lis, key):
    low = 0
    high = len(lis) - 1
    time = 0
    while low < high:
        time += 1
        # 计算mid值是插值算法的核心代码
        mid = low + int((high - low) * (key - lis[low]) / (lis[high] - lis[low]))
        print("mid=%s, low=%s, high=%s" % (mid, low, high))
        if key < lis[mid]:
            high = mid - 1
        elif key > lis[mid]:
            low = mid + 1
        else:
            # 打印查找的次数
            print("times: %s" % time)
            return mid
    print("times: %s" % time)
    return False


--结束END--

本文标题: python 基本算法

本文链接: https://lsjlt.com/news/185553.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python 基本算法
    一.无序表查找 def sequential_search(lis, key):     for i in lis:         if i == key:             return lis.index(i)         ...
    99+
    2023-01-31
    算法 python
  • python基础之基本运算符
    目录Python基本运算符算数运算符比较运算符逻辑运算符赋值运算符总结Python基本运算符 算数运算符 # + - * / % ** // 算数运算符 # 定义如下运算符 ...
    99+
    2024-04-02
  • 【Python排序搜索基本算法】之Dij
            Dijkstra算法和前一篇的Prim算法非常像,区别就在于Dijkstra算法向最短路径树(SPT)中添加顶点的时候,是按照ta与源点的距离顺序进行的。OSPF动态路由协议就是用的Dijkstra算法。下面还以那个图的例...
    99+
    2023-01-31
    算法 Python Dij
  • python:矩阵的基本运算
    一、Python 矩阵基本运算 引入 numpy 库 import numpy as np python矩阵操作 1)使用 mat 函数创建一个 2X3矩阵 a = np.mat([[1, 2, 3], [4, 5, 6]])  2)使用...
    99+
    2023-09-02
    python 矩阵 numpy
  • Python 基本语法
    相关内容 代码行 单行代码 每行代码结尾不需要加标点 a = 123 多行换行 多行代码,直接换行 a = 123b = a + 1 复杂过长的计算、操作可用括号然后缩进换行 income = (gross_wages ...
    99+
    2023-09-29
    python 开发语言
  • python基本语法
    1、常量与变量常量: 一旦赋值,就不可再改变,换句话说,就是不能对它重新赋值。Python不存在常量字面常量:一个单独出现的量,未赋值给任何变量或常量变量: 是一个名字,在赋值符号的左边,这个名字可以指代赋值符号右边的内容In [37]: ...
    99+
    2023-01-31
    语法 python
  • JVM基本垃圾回收算法
    这篇文章主要介绍“JVM基本垃圾回收算法”,在日常操作中,相信很多人在JVM基本垃圾回收算法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JVM基本垃圾回收算法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-17
  • Python编程Day3—基本运算符、数
    一、基本运算符 1、算数运算 1 print(10/3) 2 3 print(10//3) 4 5 print(10%3) 6 7 print(10**3)     2、比较运算   1 print(10==10) 2...
    99+
    2023-01-31
    运算符 Python
  • Python聚类算法之基本K均值实例详解
    本文实例讲述了Python聚类算法之基本K均值运算技巧。分享给大家供大家参考,具体如下: 基本K均值 :选择 K 个初始质心,其中 K 是用户指定的参数,即所期望的簇的个数。每次循环中,每个点被指派到最近的...
    99+
    2022-06-04
    算法 详解 实例
  • Python入门基本语法
      Python入门 以下主要讲述Python的一些基础语法,包含行的缩进在python中的重要意义,python中常见的保留字和引号的使用,如何实现单行注释和多行注释。 print("hello,Python!")   第一个Pytho...
    99+
    2023-01-30
    语法 入门 Python
  • Python基本语法元素
      静态语言(C/C++、Java);脚本语言(python、JavaScript、PHP) IPO(Input、Process、Output) #:python中的注释符号;‘’‘    ’‘’:多行注释 python的35个保留字 ...
    99+
    2023-01-31
    语法 元素 Python
  • python列表基本语法
    1、列表可以存放任何数据类型,元素可以重复,可以嵌套列表。可以对之进行增删改查操作。2、创建列表:L=【】或L=list()创建一个空列表;3、查询或者取值:ex:L=【1,2,3,“a”,“b”,“c”,1,1】通过索引或者下标取值,从左...
    99+
    2023-01-31
    语法 列表 python
  • PyTorch怎么实现基本算法FedAvg
    本文小编为大家详细介绍“PyTorch怎么实现基本算法FedAvg”,内容详细,步骤清晰,细节处理妥当,希望这篇“PyTorch怎么实现基本算法FedAvg”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。数据介绍联...
    99+
    2023-06-30
  • 基于Python实现Hash算法
    目录1 前言2 一般hash算法2.1 算法逻辑2.2 代码实现2.3 总结3 一致性hash算法3.1 算法逻辑3.2 代码实现3.3 总结1 前言 Simhash的算法简单的来说...
    99+
    2024-04-02
  • python中基本运算符号是什么
    这篇文章主要为大家展示了“python中基本运算符号是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python中基本运算符号是什么”这篇文章吧。python基本运算符号:“+”、“-”、“...
    99+
    2023-06-20
  • python-基本运算符(解压缩-必考)
    算术运算符 x =10 y =20 print(x+y) 30 print(x-y) -10 print(x*y) 200 print(x/y) 0.5 print(x%y)#取余 10 print(y//x) #取整 2 print(...
    99+
    2023-01-31
    解压缩 运算符 python
  • PHP中有哪些基本排序算法
    PHP中有哪些基本排序算法,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. 冒泡排序思路分析:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调...
    99+
    2023-06-17
  • Python的基本语法详解
    目录一、Python输出1、repr() 或 str() 转成字符串2、字符串填充空格进行格式化3、!a (使用 ascii()), !s (使用 st...
    99+
    2024-04-02
  • Python语法的基本概念
    这篇文章主要讲解了“Python语法的基本概念”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python语法的基本概念”吧!基本概念 数:整数、长整数、浮点数【例:3.23或52.3E-4】...
    99+
    2023-06-17
  • python中的argparse基本用法
    argparse是一个python模块,用途是:命令行选项、参数和子命令的解释。 使用步骤: 导入argparse模块,并创建解释器添加所需参数解析参数 用法示例: import argparse# ...
    99+
    2023-09-28
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作