Python实现选择排序
选择排序:
选择排序(Selection sort)是一种简单直观的 排序算法 。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。
Python 实现:
# selection_sort.py def selection_sort(arr): count = len(arr) for i in range(count-1): # 交换 n-1 次 min = i # 找最小数 for j in range(i, count): if arr[min] > arr[j]: min = j arr[min], arr[i] = arr[i], arr[min] # 交换 return arr my_list = [6, 23, 2, 54, 12, 6, 8, 100] print(selection_sort(my_list))
相关推荐
-
图文讲解选择排序算法的原理及在Python中的实现
基本思想:从未排序的序列中找到一个最小的元素,放到第一位,再从剩余未排序的序列中找到最小的元素,放到第二位,依此类推,直到所有元素都已排序完毕.假设序列元素总共n+1个,则我们需要找n轮,就可以使该序列排好序.在每轮中,我们可以这样做:用未排序序列的第一个元素和后续的元素依次相比较,如果后续元素小,则后续元素和第一个元素交换位置放到,这样一轮后,排在第一位的一定是最小的.这样进行n轮,就可排序. 原理图 图1: 图2: 初始数据不敏感,不管初始的数据有没有排好序,都需要经历N2/2次比较,这对于
-
python选择排序算法的实现代码
1.算法:对于一组关键字{K1,K2,-,Kn}, 首先从K1,K2,-,Kn中选择最小值,假如它是 Kz,则将Kz与 K1对换:然后从K2,K3,- ,Kn中选择最小值 Kz,再将Kz与K2对换.如此进行选择和调换n-2趟,第(n-1)趟,从Kn-1.Kn中选择最小值 Kz将Kz与Kn-1对换,最后剩下的就是该序列中的最大值,一个由小到大的有序序列就这样形成. 2.python 选择排序代码: 复制代码 代码如下: def selection_sort(list2): for i in
-
Python选择排序、冒泡排序、合并排序代码实例
前两天刚装了python 3.1.1, 禁不住技痒写点code. 1.选择排序 复制代码 代码如下: >>> def SelSort(L): length=len(L) for i in range(length-1): minIdx=i minVal=L[i] j=i+1 while j<length: if minVal>L[j]: mi
-
python选择排序算法实例总结
本文实例总结了python选择排序算法.分享给大家供大家参考.具体如下: 代码1: def ssort(V): #V is the list to be sorted j = 0 #j is the "current" ordered position, starting with the first one in the list while j != len(V): #this is the replacing that ends when it reaches the end o
-
Python实现冒泡,插入,选择排序简单实例
本文所述的Python实现冒泡,插入,选择排序简单实例比较适合Python初学者从基础开始学习数据结构和算法,示例简单易懂,具体代码如下: # -*- coding: cp936 -*- #python插入排序 def insertSort(a): for i in range(len(a)-1): #print a,i for j in range(i+1,len(a)): if a[i]>a[j]: temp = a[i] a[i] = a[j] a[j] = temp return a #
-
Python 实现选择排序的算法步骤
选择排序算法步骤: 找到数组中最小的那个元素中, 将它和数组的第一个元素交换位置, 在剩下的元素中找到最小的元素,将它和数组的第二个元素交换位置, 如此往复,知道将整个数组排序. 逐步分析: 假设一个数组有 6 个元素, [5, 1, 4, 3, 2, 6] 第 1 个元素为 5,与剩余 5 个元素相比,1 是最小的元素,所以 5 和 1 交换位置, [1, 5, 4, 3, 2, 6] 第 2 个元素为 5,与剩余 4 个元素相比, 2 是最小的元素,所以 5 和 2 交换位置, [1, 2,
-
Python实现选择排序
选择排序: 选择排序(Selection sort)是一种简单直观的 排序算法 .它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾.以此类推,直到所有元素均排序完毕. 选择排序的主要优点与数据移动有关.如果某个元素位于正确的最终位置上,则它不会被移动.选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换.在所有的完全依靠交换去
-
Python 选择排序中的树形选择排序
目录 1.引言 2.问题描述 3.解决方案 4.结语 1.引言 选择排序里面主要讲了三个排序,分别是简单选择排序.树形选择排序.堆排序.今天这篇文章主要讲树形选择排序,树形选择排序也被称为锦标赛排序,树形选择排序运用了锦标赛的思想进行排序,树形选择排序是指首先对n个记录的关键字进行两两比较,然后在n/2个较小者之间再进行两两比较,如此重复,直至选出最小的记录为止. 2.问题描述 给定一个序列,我们将如何用树形选择排序来将它排序呢,下面将结合图形和文字一起讲述. 示例1:对数据表A=(73,45,
-
Python实现的选择排序算法原理与用法实例分析
本文实例讲述了Python实现的选择排序算法.分享给大家供大家参考,具体如下: 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完. 比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素
-
Python实现的选择排序算法示例
本文实例讲述了Python实现的选择排序算法.分享给大家供大家参考,具体如下: 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完. 选择排序每次只记录最大数的索引值. 类似于冒泡排序, 也是要比较n-1次, 区别是冒泡排序每次都交换, 选择排序只在最后比较完后才进行交换 示例代码: #!/usr/bin/env python # coding:utf-8 de
随机推荐
- XP与98系统双网卡共享上网设置方法
- VBS教程:VBscript属性-IgnoreCase 属性
- Java实现快速排序算法(Quicktsort)
- Mybatis报错: org.apache.ibatis.exceptions.PersistenceException解决办法
- ASP.NET DropDownListCheckBox使用示例(解决回发问题)
- ASP.NET MVC3手把手教你构建Web
- php格式化日期实例分析
- PHP读取RSS(Feed)简单实例
- Apache+Servlet+Jsp环境设置(下)
- Docker 实用技巧总结
- javascript网页关闭时提醒效果脚本
- linux shell数组深入学习理解
- Python EOL while scanning string literal问题解决方法
- php实现发送微信模板消息的方法
- jQuery实现美观的多级动画效果菜单代码
- bookfind 通过ISBN序号获取图书连接的书名与作者的vbs代码
- Jquery跨域获得Json的简单实例
- 不错的隐藏AV大法解密
- java创建一个类实现读取一个文件中的每一行显示出来
- python编写分类决策树的代码