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

选择排序与python实现

时间:2014-10-28 23:59:42      阅读:369      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   for   sp   div   on   log   

1.算法思想

n 个元素,假设前 i 个元素已经排好序,从i+1到n个元素中选出最小的元素放在它在有序表中的最终位置上

2.代码实现

(1)非递归调用

def SelectionSort(A, n):
    for i in range(0, n-2):
        mini = i
        for j in range(i+1, n):
            if A[j] < A[mini]:
                i = j
        A[i],A[mini] = A[mini], A[i]  #swap
        print A


if __name__==__main__:
    A = [6,5,4,3,2,1]
    SelectionSort(A, len(A))
    print A

(2)递归调用

def SelectionSort(a, k, n):
    if(k == n): return
    mini = k
    for j in range(k, n):
        if a[j] < a[mini]:
            mini = j
            a[k],a[mini] = a[mini], a[k] #swap
            print a
    SelectionSort(a, k+1, n)

if __name__==__main__:
    a = [6,5,4,3,2,1]
    SelectionSort(a, 0, len(a))
    print a

3. 时间复杂度

对于任何输入来说,选择排序都是一个O(n^2)的算法。

选择排序与python实现

标签:style   blog   io   color   for   sp   div   on   log   

原文地址:http://www.cnblogs.com/zflibra/p/4057951.html

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