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

python 排序算法

时间:2019-03-29 00:46:59      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:序列   wap   最小   下标   选择排序   ret   def   冒泡排序   class   

 


冒泡排序

算法思想:

1、相邻元素对比,如果前面元素比后面的大,进行交换,直至最后一个元素,一轮结束之后,最后一个元素为最大值
2、后一轮进行的列表数量比前一轮少一个
3、反复进行上面两步,直至没有元素进行对比为止

复杂度:

冒泡排序的平均复杂度为O(n2),当原列表为正序排列时,复杂度为O(n),为倒序排列时,复杂度为O(n2),比较次数为n*(n-1)/2,关键字移动次数为n*(n-1)/4

代码:

def bubble_sort(array):
    for i in range(len(array) - 1):  # 这个循环负责设置冒泡排序进行的次数
        for j in range(len(array) - i - 1):  
            if array[j] > array[j + 1]:
                array[j], array[j + 1] = array[j + 1], array[j] #交换
    return nums

选择排序

算法思想:

1、初始状态中有序序列为空,无序序列为列表长度
2、将第一个元素与其余元素对比,如果第一个元素大于第二个元素,将min下标替换为第二个元素,依此类推,获取最小元素的下标,与i替换
3、此时有序序列为1,无序序列列表长度-1

4、将剩余的无序序列反复进行第二步,直至无序序列为0

代码

1 def selection_sort(list2):
2     for i in range(0, len (list2)-1):
3         min_ = i
4         for j in range(i + 1, len(list2)):
5             if list2[j] < list2[min_]:
6                 min_ = j
7         list2[i], list2[min_] = list2[min_], list2[i]  # swap

  

 

python 排序算法

标签:序列   wap   最小   下标   选择排序   ret   def   冒泡排序   class   

原文地址:https://www.cnblogs.com/qing0228/p/10618681.html

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