zoukankan      html  css  js  c++  java
  • 选择排序与python实现

    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)的算法。

  • 相关阅读:
    损失函数
    DPM 目标检测1
    编程题
    枚举型和元类
    python 多继承
    网络基础Cisco路由交换一
    网络基础tcp/ip协议五
    网络基础tcp/ip协议四
    网络基础tcp/ip协议三
    网络基础tcp/ip协议二
  • 原文地址:https://www.cnblogs.com/zflibra/p/4057951.html
Copyright © 2011-2022 走看看