【Python 3 选择排序】

算法讲解

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

算法代码实现

Python 3 代码实现如下,随机生成20个数,保存到列表变量list1中,通过选择排序法进行排序,然后输出排序结果:

from random import randrange
import datetime

def Sele_sort():
    list1 = []
    while len(list1) < 20:  # 范围内随机取20个数值
        list1.append(randrange(0, 1000, 3))

    print('排序前数组:',list1,'\n')
    # 通过两个for循环实现选择排序算法
    for i in range(len(list1)): 
        min_idx = i 
        for j in range(i+1, len(list1)): 
            if list1[min_idx] > list1[j]: 
                min_idx = j            
        list1[i], list1[min_idx] = list1[min_idx], list1[i]
    print('选择排序结果:')
    # 输出排序后的结果
    for j in range(1,len(list1)):
        print(list1[j])

start = datetime.datetime.now()
#调用排序函数
Sele_sort()
end = datetime.datetime.now()
print ('选择排序运行所用时间:',end-start)

代码运行结果如下:

本文分享自微信公众号 - 网优小兵玩Python(Python_tool)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏BAT的乌托邦

使用commons-configuration2读取properties、yaml、xml配置文件,实现配置文件的热更新【享学Java】

Apache Commons Configuration是apache commons组件中的又一实用工具。它的官网介绍如下:

25930
来自专栏BAT的乌托邦

Spring依赖注入(DI)核心接口AutowireCandidateResolver深度分析,解析@Lazy、@Qualifier注解的原理【享学Spring】

关于AutowireCandidateResolver接口,可能绝大多数小伙伴都会觉得陌生。但若谈起@Autowired、@Primary、@Qualifier...

10420
来自专栏BAT的乌托邦

【小家Spring】SpEL你感兴趣的实现原理浅析spring-expression~(SpelExpressionParser、EvaluationContext、rootObject)

Spring Expression Language(简称 SpEL)是一个支持查询和操作运行时对象导航图功能的强大的表达式语言。它的语法类似于传统 EL,但提...

39610
来自专栏BAT的乌托邦

【小家Java】Java环境变量(Env)和系统属性(Property)详解---工具文章

首先说明,这是一篇工具文章,主要记录下我们Java环境变量和系统属性,方便以后的查阅。

13330
来自专栏BAT的乌托邦

关于Spring属性处理器PropertyResolver以及应用运行环境Environment的深度分析,强大的StringValueResolver使用和解析【享学Spring】

若直接提PropertyResolver或者StringValueResolver可能很小伙伴会觉得非常的陌生,但是我若提Environment和Embedde...

20130
来自专栏BAT的乌托邦

【小家Spring】聊聊Spring中的数据转换:Converter、ConversionService、TypeConverter、PropertyEditor

前面聊了HttpMessageConverter,它的名称叫消息转换器,所以它面向的是消息体,和Http强相关,所以该接口所在的包为:org.springfra...

23520
来自专栏樯橹代码

Rxjs 响应式编程-第二章:序列的深入研究

童年的回忆中的益智视频游戏,你必须使用各种技巧在屏幕上引导下降的水流。您可以拆分流,稍后将它们合并,或者使用倾斜的木板来改变它们的方向。你必须要有创造力才能使水...

11420
来自专栏BAT的乌托邦

Spring中PropertySource属性源配置文件的优先级、顺序问题大解析(加载流程)【享学Spring】

关于Spring的配置文件的优先级、加载顺序一直是个老生常谈的问题。但即使经常被提起,却还是经常被忘记或者弄混。有一种听了很多道理但仍过不好这一生的赶脚有木有。

42410
来自专栏BAT的乌托邦

一文告诉你Spring是如何利用"三级缓存"巧妙解决Bean的循环依赖问题的【享学Spring】

循环依赖:就是N个类循环(嵌套)引用。 通俗的讲就是N个Bean互相引用对方,最终形成闭环。用一副经典的图示可以表示成这样(A、B、C都代表对象,虚线代表引用...

74740
来自专栏樯橹代码

掌握react,这一篇就够了

react众所周知的前端3大主流框架之一,由于出色的性能,完善的周边设施风头一时无两。本文就带大家一起掌握react。

8620

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励