来都来了,你确定不看看常用的插入排序算法<三>!(python版本图文并茂!!!!)(代码片段)

温柔且上进c 温柔且上进c     2022-12-28     554

关键词:

插入排序算法

概念:

       •插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间
       •首先,我们将数组中的数据分为两个区间,已排序区间和未排序区间。初始已排序区间只有一个元素,就是数组的第一个元素。插入算法的核心思想是取未排序区间中的元素,在已排序区间中找到合适的插入位置将其插入,并保证已排序区间数据一直有序。重复这个过程,直到未排序区间中元素为空,算法结束

图示理解:

       •如图所示,要排序的数据是 4,5,6,1,3,2,其中左侧为已排序区间,右侧是未排序区间

       •插入排序也包含两种操作,一种是元素的比较,一种是元素的移动。当我们需要将一个数据 a 插入到已排序区间时,需要拿 a 与已排序区间的元素依次比较大小,找到合适的插入位置。找到插入点之后,我们还需要将插入点之后的元素顺序往后移动一位

插入排序算法实现:

def insert_sort(li):
    n = len(li)
    for i in range(1, n):
        j = i
        while j > 0:
            if li[j] < li[j - 1]:
                li[j], li[j - 1] = li[j - 1], li[j]
                j -= 1
            else:
                break


if __name__ == '__main__':
    li = [54, 26, 93, 17, 77, 31, 44, 55, 20]
    insert_sort(li)
    print(li)

# 排序结果: [17, 20, 26, 31, 44, 54, 55, 77, 93]

来都来了,你确定不看看常用的选择排序算法<二>!(python版本图文并茂!!!!)(代码片段)

选择排序算法概念:       •选择排序(Selectionsort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余... 查看详情

来都来了,你确定不看看常用的冒泡排序算法<一>!(python版本图文并茂!!!!)(代码片段)

常见的排序!!冒泡排序冒泡排序       基本概念:              •冒泡排序(英语:BubbleSort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺... 查看详情

来都来了,你确定不看看,阿里云centos8安装docker!!(图文并茂版!!!)(代码片段)

阿里云Centos8安装Docker准备工作查看centos系统的版本号查看centos系统内核版本Centos8安装Docker切换到管理员权限安装必要的系统工具添加软件镜像源(阿里镜像源)更新并安装Docker-CE(社区版)安装完成查看Docker版本准备工作... 查看详情

来都来了,你确定不看看,git从零开始的详细使用教程,你一定能学废!!(万字长文图文并茂版!!!!)(代码片段)

Git详细使用教程!!!认识GitWindows安装GitGit环境配置用户名与邮箱地址的设置Git中实用的自定义配置Git忽略某个或某类文件强制添加被忽略的文件偷懒大法:配置别名配置文件Git的基础命令在已存在目录中初始化... 查看详情

来都来了,你确定不看看,使用python中的科学计算库numpy操作数组,你一定能学废!!(图文并茂版!!!!)(代码片段)

Numpy操作数组Numpy库Numpy库的介绍Numpy库的安装:python中数组与列表对比列表:数组:数组的创建使用array方法创建数组注意:ndmin,dtype参数的使用使用arange方法创建数组使用random(随机数)方法创建数组其它方式... 查看详情

来都来了,你确定不看看,在linuxcentos8下安装redis,你一定能学废!!!(图文并茂版!!!)(代码片段)

centos8安装redis安装gcc编译环境新建个目录,下载redis下载完成后解压缩进入文夹目录,并进行编译和安装查看redis版本!!启动redis服务端启动redis客户端修改配置文件并以配置文件启动redisbind127.0.0.1protected-moderequir... 查看详情

来都来了,你确定不看看,阿里云服务器centos8安装mysql8.0!!(图文并茂版!!!)(代码片段)

阿里云服务器Centos8安装MySQL8.0使用最新的包管理器dnf安装MySQL设置开机自启动检查MySQL的启动状态查看MySQL版本添加密码及安全设置使用root用户登录远程连接数据库配置设置远程连接信息开放防火墙MySQL3306端口关闭MySQL主机查询dns... 查看详情

数据结构与算法系列十三(选择排序)(代码片段)

...中间件,写的代码不也能“飞”起来吗?于是问题来了:为什么还要学习数据结构与算法呢?#理由一:面试的时候,千万不要被数据结构与算法拖了后腿#理由二:你真的愿意做一辈子CRUDBoy吗#理由三:不想写出开源框架,... 查看详情

java常用排序算法/程序员必须掌握的8大排序算法

...序不稳定:快速排序,希尔排序,堆排序。  先来看看8种排序之间的关系:     查看详情

chatgpt教你算法——常用的排序算法(代码片段)

...说,作为助教,我给他打200分。这真的让我想起来了小时候看的一个小说《师士传说》中的没有感情的牧,两者真的是太像了。好了闲话不说,我们来看看ChatGPT教你常见的排序算法吧!是不是通俗易懂,... 查看详情

java数据结构和算法:常用排序算法与经典题型

常用的八种排序算法1.直接插入排序   我们经常会到这样一类排序问题:把新的数据插入到已经排好的数据列中。将第一个数和第二个数排序,然后构成一个有序序列将第三个数插入进去,构成一个新的有序序列。对... 查看详情

java实现的常用5大排序算法

...然后将找到的最小值与i指向的值进行交换。因为每一趟确定元素的过程中都会有一个选择最 查看详情

java常用的八种排序算法与代码实现

1.直接插入排序2.希尔排序3.简单选择排序4.堆排序5.冒泡排序6.快速排序7.归并排序8.基数排序1.直接插入排序经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中。将第一个数和第二个数排序,然后构成一个有序序... 查看详情

常用排序的应用场景

...4.归并排序   归并排序5.基数排序以上算是最常用的一些算法。二.空间、时间复杂度、稳定性 三.性能分析1.O(n^2)性能分析& 查看详情

chatgpt教你算法——常用的排序算法(代码片段)

...说,作为助教,我给他打200分。这真的让我想起来了小时候看的一个小说《师士传说》中的没有感情的牧,两者真的是太像了。好了闲话不说࿰ 查看详情

大厂敲门砖,通过动态效果图带你掌握常用算法(代码片段)

目录一、算法思维导图二、算法分类三、冒泡排序1、基本思想2、动态效果图3、代码实现4、速度测试四、选择排序1、基本思想2、动态效果图3、代码实现4、速度测试五、插入排序1、基本思想2、动态效果图3、代码实现4、速度测... 查看详情

数据结构与算法系列十一(冒泡排序)(代码片段)

...中间件,写的代码不也能“飞”起来吗?于是问题来了:为什么还要学习数据结构与算法呢?#理由一:面试的时候,千万不要被数据结构与算法拖了后腿#理由二:你真的愿意做一辈子CRUDBoy吗#理由三:不想写出开源框架,... 查看详情

常用排序算法直接插入排序

直接插入排序概要本章介绍排序算法中的直接插入排序。内容包括:1. 直接插入排序介绍2. 直接插入排序图文说明3. 直接插入排序的时间复杂度和稳定性4. 直接插入排序实现4.1 直接插入排序C实现4.2 直接插... 查看详情