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

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

关键词:

选择排序算法

概念:

       •选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕
       •选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种排序方法

图片演示:

       •红色表示当前最小值,黄色表示已排序序列,蓝色表示当前位置

算法实现:

li = [54, 26, 93, 17, 77, 31, 44, 55, 20]


def select_sort(li):
    n = len(li)
    for i in range(n - 1):
        min_index = i
        for j in range(min_index, n):
            if li[j] < li[min_index]:
                min_index = j

        li[i], li[min_index] = li[min_index], li[i]


if __name__ == '__main__':
    select_sort(li)
    print(li)

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

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

希尔排序概念:       •希尔排序(ShellSort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。希尔排序是把... 查看详情

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

插入排序算法概念:       •插入排序(英语:InsertionSort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入... 查看详情

来都来了,你确定不看看,阿里云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... 查看详情

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

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

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

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

常用排序算法二

SELECTIONSORT:选择排序算法,每次从未完成排序的部分选出最小的插入未完成排序元素的最前面代码实现比较好写:importjava.util.*;publicclassSelectSort    publicstaticvoidmain(String[]args)        查看详情

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

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

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

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

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

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

实验八--排序算法

实验八排序算法的实现一、实验目的:熟练掌握常用的直接插入排序、简单选择排序、冒泡排序等算法。深入理解各种查找排序的结构特点及各算法之间的区别。二、实验内容:采用直接插入排序、简单选择排序、冒泡排序等常... 查看详情

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

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

数据结构与算法系列十(排序算法概述)(代码片段)

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

常用算法之----堆排序(代码片段)

预备知识堆排序  堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆  堆是具有以下性质的完全二... 查看详情

常用的排序算法(代码片段)

排序算法这篇博文主要讲解一下主流的几大排序算法选择排序思路选择排序应该是这么多排序算法中最简单的一种排序算法了,主要思路是找到数组中最小的元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是... 查看详情