Python|调换位置来排序

引言

在生活休息时,有人喜欢打麻将。如果你也会打麻将,你一定会发现:在刚拿到牌的时候,牌的顺序一定是无序的,然后你就会按花色给牌进行排序。在进行排序时,如果你是习惯从小到大的顺序,你一定会将其中两张牌调换位置,并且重复这一步骤,直到排完序。而这里面也包含了一个排序算法—简单选择排序。

问题描述

将下列无序的数字进行排序:【99、33、55、66、22、88、77、11】。

算法描述

首先扫描一遍数组,找到最小的那个元素,即11。然后进行第一次排序:只将99与11调换位置,其他元素位置不变,即【11、33、55、66、22、88、77、99】。进行第二次排序:发现第二个位置本应该是22(第二小的元素),但却是33,所以将33与22调换位置,其他元素位置不变,即【11、22、55、66、33、88、77、99】。进行第三次排序:发现55>33,所以将55与33调换位置,即【11、22、33、66、55、88、77、99】。然后后面只需要重复以上操作,就可以得到最后的排序数组【11、22、33、44、55、66、77、88、99】

简单选择排序算法思想:一方面,顺序扫描序列中的元素,记住扫描到的最小元素。在一次扫描完毕后就可以找到最小的元素,重复扫描就能完成排序。另一方面:在选出了一个元素后,原来的序列中就会出现空位,就把这些空位集中起来存放已排好的序列

简单选择排序的方法:首先将最小的元素与第一个元素调换位置(如果第一个元素就是最小的元素,则忽略这一步),下一步从未排序的元素中选择最小元素与第二个位置的元素调换位置,即放在第一个元素后面。然后不停的重复以上两步,将要排序的元素放在已排好序段的后面,最终就可以得到有序序列。

结语

在排序过程中,其实我们还可以发现:在排序过程中的任何时刻,被排序表的前段是一段已排好序的,并且他们都不大于任何一个还未排序的元素。

主编:欧洋

稿件来源:深度学习与文旅应用实验室(DLETA)

(0)

相关推荐

  • 【漫画】七种最常见的排序算法(动图版)

    https://blog.csdn.net/qq_32799165/article/details/87878876 漫画由小猿编写创作 一.冒泡排序 冒泡排序是排序算法中较为简单的一种,英文称为 B ...

  • 数据结构与算法:22 精选练习50题

    精选练习50 马上就要期末考试或者考研了.为了大家复习的方便,我精选了有关数据结构与算法的50道选择题,大家可以抽空练习一下.公众号后台回复"答案"可以获取该50道题目的答案. 0 ...

  • 初赛第二课习题

    您的姓名:* 111.算法是指( )* A.为解决问题而编写的计算机程序 B.为解决问题而采取的方法与步骤 C.为解决问题而需要采用的计算机语言 D.为解决问题而采用的计算方法 112.设栈S的初始状 ...

  • Win10文件夹中图片怎么调换位置?

    现在很多用户都会将文件放在电脑上,但是文件多累,就会杂乱,有用户想要给Win10文件夹中图片调换位置,但是发现Win10文件夹中的图片用鼠标不能随意拖到改变位置的,不像桌面上的文件这么方便.那么文件夹 ...

  • python笔记2-冒泡排序

    前言 面试的时候经常有面试官喜欢问如何进行冒泡排序?这个问题相信能难倒一批英雄好汉,本篇就详细讲解如何用python进行冒泡排序. 一.基本原理 1.概念: 冒泡排序(Bubble Sort),是一种 ...

  • 男生说大话伤害到女生,要求班主任调换位置,如果是你会怎么办?

    「您在教育上有任何问题,欢迎留言」 点上方蓝标即可关注我们的公众号 ▽▽▽ 导语 后台收到这么一条信息,有个女生想让班主任给她换位置,理由是前面的男同学在同学当中吹牛:他能轻而易举追上她.说男同学严重 ...

  • Python|插入排序之希尔排序

    引言 希尔排序(Shell's Sort)是插入排序的一种又称"缩小增量排序",是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法. 问题描述 希尔排序是把记录按下 ...

  • 如果秦岭淮河调换位置,历史会发生什么?

    秦岭淮河一线,是中国南北分界线,是一月份零度等温线,是800毫米年降水量线,是亚热带与温带的分界线,是水稻与小麦分界线. 江苏无疑是个南方省份,小桥流水人家,但江苏西北端的城市徐州,却是一个再典型不过 ...

  • python笔记17-字典按value排序

    前言 面试题:如何统计数组中出现次数最多的数据,按出现次数由大到小排序 这个排序看似简单,涉及到的基础知识点还是很多的,真正写起来并不容易 保存数据 1.首先应该提出队列里面有多少个数据,做去重处理, ...

  • python测试开发django-23.admin列表页优化和排序

    前言 列表页优化和排序 ModelAdmin django的options.py里面 ModelAdmin类定义的参数可以设置admin后台列表页面,相关的参数如下 class ModelAdmin( ...

  • Python|用“插入”也能简单排序

    引言 在排序这一个大家庭里,它的算法成员形形色色,多种多样,有"快速排序","归并排序","插入排序"等等基本排序算法.而今天,所要侧重讲解 ...

  • Python 排序了解一下?

    来源:Python 技术「ID: pythonall」 排序是每个开发人员都需要掌握的技能.排序是对程序本身有一个全面的理解.不同的排序算法很好地展示了算法设计上如何强烈的影响程序的复杂度.运行速度和 ...