用Python实现八大排序算法--直接选择排序

一、选择排序概述

选择排序(Selection sort)是一种简单直观的排序算法,它的工作原理是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,知道全部待排序的数据元素排完。

算法基本思想:
n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果
算法分析:
(1) 关键字比较次数
在第i趟排序中选出最小关键字的记录,需要做n-i次比较,因此总的比较次数为n(n-1)/2=o(n^2)
(2) 记录移动次数
初始文件为正序时,移动次数为0
文件初态为反序时,每趟排序均要执行交换操作,总的移动次数最大值为3(n-1)
平均时间复杂度为 O(n^2)
(3)稳定性:不稳定

二、Python实现

def SelectSort(lists):
    count=len(lists)
    for i in range(0,count):
        for j in range(i+1, count):
            if lists[i] > lists[j]:
                lists[i] , lists[j] = lists[j] , lists[i]
            print("===========")
            print(i,j)
            print(lists)

if __name__ == "__main__":
    lists = [3, 5, 4, 2, 1, 6]
    print(lists)
    SelectSort(lists)

运行结果如下所示
用Python实现八大排序算法--直接选择排序_第1张图片

用Python实现八大排序算法--直接选择排序_第2张图片

你可能感兴趣的:(python)