Python面试准备_排序算法

2023-11-15

最常问的Python排序算法

1、冒泡排序

#核心算法:选取每个元素,依次跟右边的元素比较。
def my_sort(arr):
    if not isinstance(arr,list):
        return None
    # i控制比较多少轮,最后1个元素可以不比,因此是长度-1
    for i in range(len(arr)-1):
        # j控制每一轮比较多少次
        for j in range(len(arr)-1-i):
            if arr[j] > arr[j+1]:
                arr[j] ,arr[j+1] = arr[j+1],arr[j]
    return arr

if __name__ == "__main__":
    print(my_sort([0,8,2,4,5,1]))
    print(my_sort([1,8,2,4,5,1]))
    print(my_sort([9,8,2,4,5,1]))
    print(my_sort([9,8,2,4,5,1,12]))

2、快速排序

#核心算法:递归。每一次递归选取一个基准,得到left + 基准 + right
def my_quicksort(arr):
    """升序"""
    if not isinstance(arr,list):
        return None
    if len(arr) < 2:
        return arr
    # 每次都选取第一个元素作为基数
    basic_data = arr[0]
    left ,right = [],[]
    # 遍历时不能包含基数
    for i in arr[1:]:
        if i >= basic_data:
            right.append(i)
        else:
            left.append(i)
    # 即left = [x for x in arr[1:] if x < basic_data]
    # 即right = [x for x in arr[1:] if x >= basic_data]
    # 递归调用,最后根据列表的加法运算,组装得到排序后的列表
    return my_quicksort(left) + [basic_data] + my_quicksort(right)
   

if __name__ == "__main__":
    print(my_quicksort([0,8,2,4,5,1]))
    print(my_quicksort([1,8,2,4,5,1]))
    print(my_quicksort([9,8,2,4,5,1]))
    print(my_quicksort([9,8,2,4,5,1,12]))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python面试准备_排序算法 的相关文章

  • 使用 pythonbrew 编译 Python 3.2 和 2.7 时出现问题

    我正在尝试使用构建多个版本的 python蟒蛇酿造 http pypi python org pypi pythonbrew 0 7 3 但我遇到了一些测试失败 这是在运行的虚拟机上 Ubuntu 8 04 32 位 当我使用时会发生这种情
  • Python 中的 Lanczos 插值与 2D 图像

    我尝试重新缩放 2D 图像 灰度 图像大小为 256x256 所需输出为 224x224 像素值范围从 0 到 1300 我尝试了两种使用 Lanczos 插值来重新调整它们的方法 首先使用PIL图像 import numpy as np
  • 在 python 程序中合并第三方库的最佳实践是什么?

    下午好 我正在为我的工作编写一个中小型Python程序 该任务需要我使用 Excel 库xlwt and xlrd 以及一个用于查询 Oracle 数据库的库 称为CX Oracle 我正在通过版本控制系统 即CVS 开发该项目 我想知道围
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • Python - StatsModels、OLS 置信区间

    在 Statsmodels 中 我可以使用以下方法拟合我的模型 import statsmodels api as sm X np array 22000 13400 47600 7400 12000 32000 28000 31000 6
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • 无法在 Python 3 中导入 cProfile

    我试图将 cProfile 模块导入 Python 3 3 0 但出现以下错误 Traceback most recent call last File
  • 将图像分割成多个网格

    我使用下面的代码将图像分割成网格的 20 个相等的部分 import cv2 im cv2 imread apple jpg im cv2 resize im 1000 500 imgwidth im shape 0 imgheight i
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc

随机推荐

  • Sklearn常用API以及代码

    1 ensemble 集成 VotingClassifier 投票分类器 由若干异质分类器组成 例如LR RF朴素贝叶斯 GNB import numpy as np from sklearn import datasets from sk
  • 2022年业绩逆势增长,“要强”蒙牛再创蒙牛

    2022年是蒙牛 再造一个新蒙牛 五年计划的第二年 也是乳企赛道疫情以来最为艰难的一年 这一年里 不仅有疫情多点散发所带来的线下渠道不畅 也有原材料价格飙涨所导致的成本高企 在这种形势下 蒙牛尽管遭遇多重困难 但仍拿出了一份亮眼的成绩单 其
  • Eclipse 连接 SQL Server 2008数据库,运行JAVA代码时出现:‘sa’用户登录失败

    前几天用Eclipse 连接 SQL Server 2008数据库 运行JAVA代码时总是出现 sa 用户登录失败 我的连接方法都是按照网上找的 一直在寻找错误的原因 网上说 1 sql server的密码是否正确 2 sql server
  • 西瓜书《机器学习》课后答案——chapter7

    7 1 试使用极大似然法估计西瓜数据集3 0中前3个属性的类条件概率 解答 假设类别C为随机变量 则它总共有两种取值 好瓜和坏瓜 前3个属性分别为色泽 根蒂和敲声 分别用随机变量R S T表示 并且可取值分别为 青绿 乌黑 浅白 38738
  • Array K-Coloring【Codeforces Round #531 (Div. 3)B】【构造】

    题目链接 题意 给你N长度的数组 以及K种颜色 要求的是我们能否使用全部K种颜色来填充每个数组元素 其中数组中的每个相同值元素的染色是不能相同的 并且 要用完所有K个颜色 能达到以上要求 则是YES并输出染色 否则 只有NO 我WA在了第6
  • 一个或多个筛选器或者Listeners启动失败

    今天使用tomcat直接部署项目 之前一直都是在idea直接部署 但是在启动tomcat的过程中一直报一个或多个筛选器或者Listeners启动失败的错误 之前在idea部署的时候也出现过这个错误 然后就根据网上的答案说 lib 下可能没有
  • 数据结构初阶 ---- 顺序表的(C语言)实现

    目录 一 动态顺序表的结构体定义 二 动态顺序表的函数接口 1 顺序表的初始化 2 顺序表的销毁 3 打印结构体数组内的内容 4 检查数组容量 容量不够时 扩容 5 顺序表的尾插 6 顺序表的尾删 7 顺序表的头插 8 顺序表的头删 9 顺
  • jffs2:You cannot use older JFFS2 filesystems with newer kernels错误

    jffs2 You cannot use older JFFS2 filesystems with newer kernels错误 原因 可能在于交叉编译linux内核时 没有打开jffs2系统的使能开关 解决方法 在内核文件中执行make
  • spring mvc 中对静态资源的访问配置

    在web xml中配置spring mc servlet 对url pattern设置时 排除在spring的servlet之外
  • netty的线程池-----揭示了使用两个线程池的原因

    线程模型是Netty的核心设计 设计地很巧妙 之前项目中有一块处理并发的设计和Netty的Eventloop单线程设计类似 效果得到了实证 Netty5的类层次结构和之前的版本变化很大 网上也有很多文章写Netty的线程模型 Reactor
  • windbg+vmware双机调试配置教程及可能出现的问题

    一 设备参数说明 1 调试机 物理机windows 10 windbg 10 0 22000 194 2 被调试机 虚拟机windows xp sp3 3 虚拟机软件 VMware workstation 16 1 2 二 虚拟机配置调试串
  • Python面试题整理(选择题及其答案)

    Python面试题 选择题及其答案 往期文章 Python知识点整理 完整 Python知识点整理 图文结合近三万字 史上最全 Python二级考试知识点 史上最全 Python二级考试试题汇总 史上最全 2023年Python选择题及答案
  • 学习之笔记

    Hook技术被广泛应用于安全的多个领域 比如杀毒软件的主动防御功能 涉及到对一些敏感API的监控 就需要对这些API进行Hook 窃取密码的木马病毒 为了接收键盘的输入 需要Hook键盘消息 甚至是Windows系统及一些应用程序 在打补丁
  • Matlab求解矩阵方程

    描述 使用matlab求解某个方程 方程里面的变量和参数都是矩阵形式 代码 clc clear syms x A eye 4 B eye 4 x solve A x inv A B x就是方程的解 下面是另外一种形式 和上面是等同的 cle
  • UE4学习日记——蓝图中的各种颜色代表什么

    节点类型颜色 白色 执行线 蓝色 调用的函数或事件 暗蓝色 结构体 草绿色 流程切换 绿色 纯函数 通常用于获取什么 青色 试着对象转换 紫色 函数定义 灰色 宏 红色 事件的定义 土黄色 时间轴 数据类型颜色 白色线条 执行线 程序的执行
  • XSL-FO 基础知识(三)

    基本块格式化 第 1 页 共4 页 既然您已经接触到了
  • Echarts 提示内容自定义 y轴显示中文

    提示信息 只需要重写tooltip中的formatter方法 然后按照函数进行数据处理 并返回要显示的数据即可 tooltip formatter function params var res params 0 name br 水质等级为
  • html是用来表示网上信息的符号标记语言,html标记的一般格式

    html标记的一般格式 HTML是 Hyper Text Markup Language 超文本标记语言 的缩写 用来表示网上信息的 符号标记语言 是Web文档的规范 也有人把HTML称为浏览器的母语 HTML语言内容丰富 从功能上大体可分
  • Unity 实现AR脱卡功能

    准备好普通的AR东西后 在DefaultTrackableEventHandler代码中的OnTrackingFound 函数中 第一行添加 TrackerManager Instance GetTracker Stop TrackerMa
  • Python面试准备_排序算法

    最常问的Python排序算法 1 冒泡排序 核心算法 选取每个元素 依次跟右边的元素比较 def my sort arr if not isinstance arr list return None i控制比较多少轮 最后1个元素可以不比