⽤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实现选择排序-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 &; 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 ,Python,java,Go系列算法之选择排序
常见的内部排序算法有:插⼊排序.希尔排序.选择排序.冒泡排序.归并排序.快速排序.堆排序.基数排序等. ⽤⼀张图概括: 选择排序 选择排序是⼀种简单直观的排序算法,⽆论什么数据进去都是O(n2) ...
《算法4》2.1 - 选择排序算法(Selection Sort), Python实现
选择排序算法(Selection Sort)是排序算法的⼀种初级算法.虽然⽐较简单,但是基础,理解了有助于后⾯学习更⾼深算法,勿以勿⼩⽽不为. 排序算法的语⾔描述: 给定⼀组物体,根据他们的某种可量化 ...
随机推荐
java分享第⼆⼗天(l的语法及写法)
通常情况下,Ant构建⽂件l应该在项⽬的基础⽬录.可以⾃由使⽤其他⽂件名或将构建⽂件中其他位置.在本练习中,创建⼀个名为l 在电脑的任何地⽅的⽂件. <?xml ...
django⼊门记录 2
1. 创建⼀个app, python manage.py startapp appname
2. 设计model,在appname/⽬录下编辑好model
3. 检测model的修
改,python ...
maven打包技巧
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]
VC++ 遍历⽬录
遍历⽂件⽬录,即把⼀个⽬录⾥的⽂件名都取出来.本⽂是CFileFind类的使⽤实例的笔记.下⾯的程序是从⼀个⽬录出发,把这个⽬录⾥的所有成员按着层次输出. 代码如下: void TravelFolde ...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论