用python实现选择排序_选择排序(Python实现)

1. for版本--选择排序

def select_sort_for(a_list):

'''选择排序 for版本'''

num = len(a_list)

for j in range(num-1):

for i in range(j,num):

if a_list[i] < a_list[j]:

a_list[j],a_list[i] = a_list[i],a_list[j]

return a_list

2. while版本--选择排序

def select_sort_while(b_list):

'''选择排序 while版本'''

num = len(b_list)

j = 0;

while j < num-1:

i = j + 1

while i > j and i <= num-1:

if b_list[j] > b_list[i]:

b_list[j],b_list[i] = b_list[i],b_list[j]

i += 1

j += 1

return b_list

3.测试用例

if __name__ == '__main__':

a_list = [2,4,9,1,5]

print(select_sort_for(a_list))

b_list = [2,4,9,1,5]

print(select_sort_while(b_list))

4. 算法时间复杂度分析

最好时间复杂度:O(n2)

最坏时间复杂度:O(n2)

稳定性:不稳定(考虑升序每次选择最大的情况)

选择排序-Python与PHP实现版

选择排序Python实现 import random # 生成待排序数组 a=[random.randint(1,999) for x in range(0,36)] # 选择排序 def selec ...

选择排序——Python实现

选择排序: 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小( ...

选择排序python实现

选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完.注意每次查找 ...

选择排序-Python &amp&semi; Java

选择排序:1.找出最小的数值放在第一位2.找出剩余数据中最小的数值放在第二位,以此类推,直到最后一个数值 算法的时间复杂度为:O(n) ''' 选择排序: 1.找出最小的数值放在第一位 2.找出剩余数 ...

选择排序--python

def findSmallest(arr): smallest = arr[0] smallest_index = 0 for i in range(1, len(arr)): if arr[i] & ...

选择排序算法Java与Python实现

Java 实现 package common; public class SimpleArithmetic { /** * 选择排序 * 输入整形数组:a[n] [4.5.3.7] * 1. 取数组编 ...

三种排序算法python源码——冒泡排序、插入排序、选择排序

最近在学习python,用python实现几个简单的排序算法,一方面巩固一下数据结构的知识,另一方面加深一下python的简单语法. 冒泡排序算法的思路是对任意两个相邻的数据进行比较,每次将最小和最大 ...

你需要知道的九大排序算法【Python实现】之选择排序

一.选择排序 基本思想:选择排序的思想非常直接,不是要排序么?那好,我就从所有序列中先找到最小的,然后放到第一个位置.之后再看剩余元素中最小的,放到第二个位置--以此类推,就可以完成整个的排序工作了. ...

JavaScript &comma;Python&comma;java&comma;Go系列算法之选择排序

常见的内部排序算法有:插入排序.希尔排序.选择排序.冒泡排序.归并排序.快速排序.堆排序.基数排序等. 用一张图概括:   选择排序 选择排序是一种简单直观的排序算法,无论什么数据进去都是O(n2) ...

《算法4》2&period;1 - 选择排序算法&lpar;Selection Sort&rpar;&comma; Python实现

选择排序算法(Selection Sort)是排序算法的一种初级算法.虽然比较简单,但是基础,理解了有助于后面学习更高深算法,勿以勿小而不为. 排序算法的语言描述: 给定一组物体,根据他们的某种可量化 ...

随机推荐

java分享第二十天(build&period;xml的语法及写法)

通常情况下,Ant构建文件build.xml应该在项目的基础目录.可以自由使用其他文件名或将构建文件中其他位置.在本练习中,创建一个名为build.xml 在电脑的任何地方的文件. <?xml ...

django入门记录 2

1. 创建一个app, python manage.py startapp  appname 2. 设计model,在appname/目录下编辑好model 3. 检测model的修改,python ...

maven打包技巧

http://www.infoq.com/cn/news/2011/06/xxb-maven-9-package/ "打包"这个词听起来比较土,比较正式的说法应该是"构建 ...

Java连接mySql—JDBC连接数据库

利用JDBC开发数据库 经典应该用框架: 第一步,加载JDBC数据库驱动程序(不同的数据库有不同的数据库驱动,所以在连接数据库之前,需加载驱动) 格式: String driver = "c ...

droidcon 北京2016安卓技术大会——安卓领域国际盛会

目前droidcon国际技术大会已成为安卓领域全球最有影响力.规模最大的技术大会,每年在世界各地举办,横跨四大洲,超过上万人次参加. droidcon国际技术大会于2009年由一个Android爱好者 ...

less分页阅读

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more 更加的有弹性.在 more 的时候,我们并没有办法向前面翻 ...

从零开始学习PYTHON3讲义(三)写第一个程序

<从零开始PYTHON3>第三讲 本页面使用了公式插件,因博客主机过滤无法显示的表示抱歉,并建议至个人主页查看原文. ​ 我见过很多初学者,提到编程都有一种恐惧感,起源是感觉编程太难了.其 ...

HDU 5542 - The Battle of Chibi - &lbrack;离散化&plus;树状数组优化DP&rsqb;

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5542 Problem DescriptionCao Cao made up a big army an ...

VC&plus;&plus; 遍历目录

遍历文件目录,即把一个目录里的文件名都取出来.本文是CFileFind类的使用实例的笔记.下面的程序是从一个目录出发,把这个目录里的所有成员按着层次输出. 代码如下: void TravelFolde ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值