《算法图解》总结第 2 章:数组和链表,选择排序

2023-11-11

仅用于记录学习,欢迎批评指正,大神勿喷

系列文章目录

《算法图解》总结第 1 章:二分查找、大O表示法;
《算法图解》总结第 2 章:数组和链表,选择排序;
《算法图解》总结第 3 章:while循环、递归、栈;
《算法图解》总结第 4 章:分而治之、快速排序;
《算法图解》总结第 5 章:散列表;
《算法图解》总结第 6 章:广度优先搜索;
《算法图解》总结第 7 章:狄克斯特拉算法;
《算法图解》总结第 8 章:贪婪算法
《算法图解》总结第 9 章:动态规划
《算法图解》总结第 10 章:K最近邻算法
《算法图解》总结第 11 章:十种算法简介


数组和链表

数组:所有元素都是在一起的;
链表:元素可存储在任何地方。
举例说明含义区别:如与朋友约好去看电影,起初来了2个人,就坐后又来了1个朋友,但原来地方没有空位,在数组的情况下是必须得去找一个能容纳3人的地方,坐在一起,如果再来1个人,旁边仍然没有空位,就必须再次转移一个能容纳4人的地方,但是在链表的情况下,已就坐的人是不需要移动的,再来的朋友可以选择其他空位。简而言之,数组相当于说“我们必须坐在一起”,链表相当于说“我们可以分开来坐”。
在中间插入元素区别:在数组中插入元素时,其后的元素都要向后移动,在链表中插入元素,仅需修改前面那个元素指向的地址,因此在中间插入元素选择链表更合适,若没有多余内存,插入不能成功。
删除元素:同在中间插入元素相同,从数组中删除元素时,其后的元素都要向前移动,从链表中删除元素,仅需修改前面那个元素指向的地址,因此删除元素选择链表更合适,删除一定会成功。
访问顺序:顺序访问是从第一个元素开始逐个读取元素,随机访问是可直接跳到第十个元素。链表只能顺序访问,即要读取第十个元素,必须得先读取前九个元素,并沿链接找到第十个元素,数组支持随机访问。

选择排序

简单释义:假如要对五首歌的播放量从小到大进行排序,遍历整个列表选出播放量最小的,加至新的列表,删除此歌,再遍历其他四首歌的播放量,再找出其中播放量最小的,加之上面的新列表第一小播放量后面,删除此歌,随后按此方法排出这五首歌的播放量从小到大的顺序,此方法称为选择排序。
算法实现:Python
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《算法图解》总结第 2 章:数组和链表,选择排序 的相关文章

  • 如何访问pandas数据框中的多级索引?

    我想用相同的索引来调用这些行 这是示例数据框 arrays np array bar bar baz baz foo foo qux qux np array one two one two one two one two df pd Da
  • 使用 python 制作本地服务器应用程序的最佳方法

    我想要简单轻松地集成 python 和 vba 人们 如果他们在阅读本文后亲自见到我 阅读本文可能会杀了我 但我正在使用 django 开发服务器来实现此目的 有没有什么简单又好的方法 仅举个例子 我想使用 python 模块 openpy
  • 将 pandas 数据框中的列减去其第一个值

    我需要将 pandas 数据帧的一列中的所有元素减去其第一个值 在这段代码中 pandas 抱怨 self inferred type 我猜这是循环引用 df Time df Time df Time 0 在这段代码中 pandas 抱怨为
  • 如何使用pycaffe重构caffe网络

    我想要的是 加载网络后 我将分解一些特定的图层并保存新的网络 例如 原网 数据 gt conv1 gt conv2 gt fc1 gt fc2 gt softmax New net 数据 gt conv1 1 gt conv1 2 gt c
  • 如何用 python 和 sympy 解决多元不等式?

    我对使用 python 和 Sympy 还很陌生 并且遇到了使用 sympy 解决多元不等式的问题 假设我的文件中有很多函数 如下所示 cst sqrt x 2 cst exp sqrt cst x 1 4 log log sqrt cst
  • 获取单个方程的脚本

    在文本文件中输入 a 2 8 b 3 9 c 4 8 d 5 9 e a b f c d g 0 6 h 1 7 i e g j f h output i j 期望的输出 输出 2 8 3 9 0 6 4 8 5 9 1 7 如果输入文件名
  • 类属性在功能上依赖于其他类属性

    我正在尝试使用静态类属性来定义另一个静态类属性 我认为可以通过以下代码来实现 f lambda s s 1 class A foo foo bar f A foo 然而 这导致NameError name A is not defined
  • 使用正则表达式解析 Snort 警报文件

    我正在尝试使用 Python 中的正则表达式从 snort 警报文件中解析出源 目标 IP 和端口 和时间戳 示例如下 03 09 14 10 43 323717 1 2008015 9 ET MALWARE User Agent Win9
  • Python:当前目录是否自动包含在路径中?

    Python 3 4 通过阅读其他一些 SO 问题 似乎如果moduleName py文件位于当前目录之外 如果要导入它 必须将其添加到路径中sys path insert 0 path to application app folder
  • 如何为多组精灵创建随机位置?

    我尝试使用 blit 和 draw 方法进行 for 循环 并为 PlayerSprite 和 Treegroup 使用不同的变量 for PlayerSprite in Treegroup surface blit PlayerSprit
  • 字典的嵌套列表

    我正在尝试创建dict通过嵌套list groups Group1 A B Group2 C D L y x 0 for y in x if y x 0 for x in groups d k v for d in L for k v in
  • 在 Mac 上安装 Pygame 到 Enthought 构建中

    关于在 Mac 上安装 Pygame 有许多未解答的问题 但我将在这里提出我的具体问题并希望得到答案 我在 Mac 上安装 Pygame 时遇到了难以置信的困难 我使用 Enthought 版本 EPD 7 3 2 32 位 它是我的默认框
  • 字典中列表中仅有的几个索引的总和

    如果我有这种类型的字典 a dictionary dog white 3 5 black 6 7 Brown 23 1 cat gray 5 6 brown 4 9 bird blue 3 5 green 1 2 yellow 4 9 mo
  • urllib2.urlopen() 是否实际获取页面?

    当我使用 urllib2 urlopen 时 我在考虑它只是为了读取标题还是实际上带回整个网页 IE 是否真的通过 urlopen 调用或 read 调用获取 HTML 页面 handle urllib2 urlopen url html
  • ValueError:无法插入 ID,已存在

    我有这个数据 ID TIME 1 2 1 4 1 2 2 3 我想按以下方式对数据进行分组ID并计算每组的平均时间和规模 ID MEAN TIME COUNT 1 2 67 3 2 3 00 1 如果我运行此代码 则会收到错误 ValueE
  • Python 矩阵每一行的总和

    lista 1 2 3 4 5 6 7 8 9 print lista def filas lista res for elemento in lista x sum lista elemento res append x print re
  • 是否可以写一个负的python类型注释

    这可能听起来不合理 但现在我需要否定类型注释 我的意思是这样的 an int Not Iterable a string Iterable 这是因为我为一个函数编写了一个重载 而 mypy 不理解我 我的功能看起来像这样 overload
  • Python模块单元测试的最佳文件结构组织?

    遗憾的是 我发现有太多方法可以在 Python 中保存单元测试 而且它们通常没有很好的文档记录 我正在寻找一种 终极 结构 它可以满足以下大部分要求 be discoverable by test frameworks including
  • PyQt 中的线程和信号问题

    我在 PyQt 中的线程之间进行通信时遇到一些问题 我使用信号在两个线程 发送者和监听者 之间进行通信 发送者发送消息 期望被监听者接收 但是 没有收到任何消息 谁能建议可能出了什么问题 我确信这一定很简单 但我已经环顾了几个小时但没有发现
  • 具有指定置信区间的 Seaborn 条形图

    我想在 Seaborn 条形图上绘制置信区间 但我已经计算出置信区间 如何让 Seaborn 绘制我的置信区间而不是尝试自行计算它们 例如 假设我有以下 pandas DataFrame x pd DataFrame Group 1 0 5

随机推荐

  • Windows Server 2016虚拟机从零开始安装(超详细)

    目录 一 VMware Workstation虚拟机软件的下载 二 镜像文件的下载 三 Windows Server 2016虚拟机的创建 四 虚拟机系统安装 五 最后 一 VMware Workstation虚拟机软件的下载 官网下载入口
  • SpringData JPA 利用Case实现非规则排序

    开发时候客户需要将巡检单按照状态和开始时间排序 客户需求 但是在数据库中state的值不是正常排序的 审核不通过 5 待处理 0 处理中 1 待审核 3 完成 9 所以总结以下就是需要对象非规则排序 排序是先按照state属性以 5 0 1
  • 基于MATLAB的阔叶树叶片智能识别

    基于MATLAB的阔叶树叶片智能识别 根据叶片的形状 椭圆长轴短轴比 可以初步判断树种 为智能识别打下基础 本文方法是基于MATLAB的图像处理工具和数值计算功能 1 叶片照片的预处理 利用PS去掉背景 2 图像处理 彩色图像转灰度图像
  • 不使用任何框架实现CNN网络

    文章目录 一 问题描述 二 设计简要描述 三 程序清单 四 结果分析 五 调试报告 六 实验小结 一 问题描述 基于Numpy和函数im2col与col2im来实现一个简单的卷积神经网络 将其用于手写体识别 二 设计简要描述 机器学习的三个
  • 硬件入门之什么是mos管

    硬件入门之什么是mos管 文章目录 硬件入门之什么是mos管 一 mos管是什么 MOS管常用于 驱动大功率电路中 MOS选型参数 mos管调参数 二 实际应用场景 1 防反接保护电路 2 防过压保护电路 3 防反接防过压电路一体电路 4
  • Nginx的异步非阻塞

    1 同步与异步 同步与异步的重点在消息通知的方式上 也就是调用结果通知的方式 同步 当一个同步调用发出去后 调用者要一直等待调用结果的通知后 才能进行后续的执行 异步 当一个异步调用发出去后 调用者不能立即得到调用结果的返回 异步调用 要想
  • Druid(Druid.io)简单使用

    Druid简单使用 一 Druid服务进程 Historical进程 Historical进程用于处理历史数据的存储和查询 历史数据包括所以已经被committed的流数据 Historical进程从深度存储 Deep Storage 中下
  • [2020-11-30 ]国产化操作系统调研

    近期 因为公司业务需要 服务器更换为国产操作系统 所以对国产系统的发展进行了一些调研 首先是我国第一款国产操作系统 红旗 2000年成立北京中科红旗软件技术有限公司 2001年的时候 在北京市政府的采购招标中 微软被踢出局 红旗和金山成为了
  • yolo中 LoadImages, LoadScreenshots, LoadStreams

    LoadImages 功能 读取本地图片 视频 摄像头数据 参数说明 path 路径地址 图片文件夹 文件 视频文件夹 文件 或者两者混合都可以 img size resize 或者letterbox转换后的大小 stride letter
  • 基于Matlab的多目标生产调度问题求解方法

    基于Matlab的多目标生产调度问题求解方法 在生产过程中 为了提高生产效率和降低成本 常常需要将多个任务进行合理的安排 而多目标生产调度问题就是要在满足生产需求的前提下 同时最小化生产成本和生产时间等多个目标指标 针对这个问题 我们可以利
  • 鲍春健:从“走进客户”奔向“成为客户”

    站在当下来看 小鹅通的服务力的特殊性在于其可以穿透三层 即以自身的服务力赋能客户的服务力 其中 一层是客户 一层是客户的服务 一层是客户的客户 作者 斗斗 出品 产业家 累计终端用户数达8 2亿 最高日活1400万 累计创造的知识商品数达4
  • 5g网络架构_5G之核心网技术一-核心网网络架构及网元功能介绍

    本文的学习内容 包含前两节 5G总体情况 5G核心网网络架构及网元功能 5G核心网关键技术 5G核心网演进思路 5G网络畅想 采用通用硬件 一张网络满足多样化业务需求 网络平台级运营 灵活适配业务需求 满足能力开放 用户面部署下沉 减小业务
  • hadoop (1.0.4) Path 详解

    Path 对路径进行解析 将参数转换为标准的URI格式 对Path的参数作判断 标准化 字符化等操作 为了便于理解Path 各位可以先参看URI的详解 链接http www cnblogs com springside5 archive 2
  • Hbase 单机环境搭建

    大数据处理场景 比如我要想对十几亿数据进行排序 肯定不能放在关系型数据库排序 首当其冲就要想到一个能高效存储与高效读取的数据库 这里我想到了分布式数据库Hbase 今天我们就只讲下Hbase安装 后面会讲到数据读取出来了如何高效进行排序 H
  • LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置

    LeetCode 34 在排序数组中查找元素的第一个和最后一个位置 解题思路 这里先使用二分法寻找到第一个位置 在从第一个位置开始挨个 循环 寻找最后一个位置 当然 最后一个位置也可以使用二分的方法完成 代码实现 class Solutio
  • Echarts中国地图的china.js下载

    今天用到了Echarts的中国地图map 但Echarts官网的地图js已经停止提供下载了 找了下其他的链接放到这里 一些其他会用到的js文件也在里面可以找到 省的下次用现找 https github com apache incubato
  • Linux 搭建Redis 哨兵集群

    目录 1 安装环境 2 下载安装包 3 安装依赖环境和编译 4 启动 5 集群搭建 6 启动哨兵 7 设置开机自启动 8 redis卸载 1 安装环境 阿里云centos7 9版本 2 下载安装包 地址 Index of releases
  • 代码覆盖生态系统的库和软件包

    如果您已经编写了测试驱动的代码已有一段时间了 那么您将了解代码覆盖率 也称为测试覆盖率 如果您不熟悉该术语 则有两个简短定义 维基百科将其定义为 一种度量 用于描述特定测试套件运行时程序源代码的执行程度 根据Martin Fowler的说法
  • 深入学习jquery源码之append()和prepend()

    深入学习jquery源码之append 和prepend append content fn 概述 向每个匹配的元素内部追加内容 这个操作与对指定的元素执行appendChild方法 将它们添加到文档中的情况类似 参数 content St
  • 《算法图解》总结第 2 章:数组和链表,选择排序

    仅用于记录学习 欢迎批评指正 大神勿喷 系列文章目录 算法图解 总结第 1 章 二分查找 大O表示法 算法图解 总结第 2 章 数组和链表 选择排序 算法图解 总结第 3 章 while循环 递归 栈 算法图解 总结第 4 章 分而治之 快