码迷,mamicode.com
首页 > 编程语言 > 详细

排序算法-选择排序

时间:2019-10-11 23:12:21      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:print   python语言   ini   时间复杂度   sub   选择排序   inf   index   pre   

一、选择排序原理:

  选择排序(Selection sort)是一种简单直观的排序算法。第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法

二、选择排序时间复杂度(n2)

  总的比较次数为:(n-1)+(n-2)+...+2+1 = n(n-1)/2 = ½ n2 - ½n,对于较大的n,我们选择影响较大的项,忽略常数系数。

三、代码实现(源码参照教程数据结构(python语言描述) P49

 1 def selectSort(lyst):
 2     i = 0
 3     while i < len(lyst) - 1:
 4         minindex = i
 5         j = i + 1
 6         while j < len(lyst):
 7             if lyst[j] < lyst[minindex]:
 8                 minindex = j
 9             j += 1
10         if minindex != i:
11             swap(lyst, i, minindex) # 交换数据
12         i += 1
13         print(lyst)
14 
15 
16 def swap(lst, i, j):
17     temp = lst[i]
18     lst[i] = lst[j]
19     lst[j] = temp
20 
21 
22 def getData():
23     return [23, 45, 2, 35, 89, 56, 3]
24 
25 
26 selectSort(getData())

四、排序过程

技术图片

 

排序算法-选择排序

标签:print   python语言   ini   时间复杂度   sub   选择排序   inf   index   pre   

原文地址:https://www.cnblogs.com/zhuanjiao/p/11657480.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!