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

选择排序之python

时间:2018-05-31 23:06:54      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:bsp   def   ima   代码   info   技术分享   time   sort   描述   

选择排序( Selection sort)

1.算法描述:

  • 列表上的2个线性传递
  • 在每次通过时,它会选择最小的值
  • 用最后一个未分类元素交换它

技术分享图片

2.算法属性:

  • 算法时间复杂度:O(n**2)
  • 不稳定性:list里面重复元素可能会因选择后改变前后顺序
  • O(1) 额外的空间
  • O(n2 ) 对比
  • O(n) 互换
  • 不具有适应性:不像冒泡那样可以加flag来改善

技术分享图片

3.代码实现

#kumata‘s code
#算法复杂度O(n**2)
#找到最小的元素就和第一个index交换
#从小到大排

import time
def selection_sort(nums=list): start = time.time() #第一层选择第n小的元素下标 for i in range(len(nums)): # n pos_min = i # Index #第二层遍历找出需要交换的元素下标 for j in range(i + 1,len(nums)): if nums[pos_min] > nums[j]: pos_min = j #交换嘻嘻 nums[i],nums[pos_min] = nums[pos_min],nums[i] t = time.time() - start return nums,t nums = [1,2,5,8,4,3,6] selection_sort(nums) #输出结果 ([1, 2, 3, 4, 5, 6, 8], 0.0)

 

选择排序之python

标签:bsp   def   ima   代码   info   技术分享   time   sort   描述   

原文地址:https://www.cnblogs.com/kumata/p/9119351.html

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