`

排序算法学习(python版本)之选择排序(SelectionSort)

阅读更多
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

最差时间复杂度:O(n^2)
最优时间复杂度:O(n^2)
平均时间复杂度:O(n^2)


代码:
#! /usr/bin/env python
#-*-encoding:utf-8-*-

#SelectionSort
def selection_sort(param):
    p_len = len(param)
    for i in range(p_len):
        min = i
        for j in range(i+1,p_len):
            if param[min]>param[j]:
                min = j
        if min!=i:
            param[i],param[min]=param[min],param[i]
    return param

def main():
    param = [1,2,3,4,5,7,6]
    print selection_sort(param)

if __name__=="__main__":
    main()


参考资料:

http://zh.wikipedia.org/wiki/%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8F   
分享到:
评论

相关推荐

    python常用排序算法汇总

    # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() #计数排序 # sort.quickSort() #快速排序 该排序算法把每次的排序结果都列出来,可供初学者学习。 self.arr存放的是待排序...

    基于python的排序算法-选择排序Selection Sort

    总的来说,虽然选择排序在许多情况下不是最优解,但作为基础排序算法,理解其原理和实现对于学习更复杂的排序算法如快速排序、归并排序等是非常有帮助的。在实际开发中,根据具体需求和数据特性,选择更适合的排序...

    排序算法之Python

    在编程领域,排序算法是数据结构与算法课程中的重要内容,特别是在Python编程中,由于其简洁易懂的语法,实现各种排序算法变得尤为直观。本文将深入探讨“八大基础排序算法”在Python中的实现,旨在帮助读者理解排序...

    各种排序算法的Python实现

    通过学习和实践这些排序算法的Python实现,不仅可以提升编程技巧,还能加深对算法的理解,有助于解决实际问题。在代码练习中,可以针对不同的数据结构和场景,对比这些算法的性能,选择最适合的排序方法。同时,了解...

    排序算法_python_

    这个压缩包文件"排序算法_python_"显然是关于使用Python实现各种排序算法的学习资源。这里我们将深入探讨几种常见的排序算法及其Python实现。 1. 冒泡排序(Bubble Sort): 冒泡排序是最基础的排序算法,通过不断...

    排序算法_排序算法实现_python排序_排序算法_light9m6_

    本文将详细讨论在Python中实现的三种基本排序算法:冒泡排序、选择排序和插入排序,这些都是`light9m6`提供的教学资源。 首先,我们来了解冒泡排序(Bubble Sort)。这是一种简单直观的排序算法,它重复地遍历要...

    八大排序算法的python实现

    希尔排序,也称为递减增量排序算法,是插入排序的一种更高效的改进版本。它首先取一个较大的步长,逐步缩小步长直到为1,对每个步长进行插入排序。Python实现代码如下: ```python def shell_sort(list): n = len...

    Python实现10大排序算法.rar

    本资源"Python实现10大排序算法.rar"包含了对经典排序算法的Python实现,这对于学习和理解排序算法的原理非常有帮助。 1. 冒泡排序(Bubble Sort):冒泡排序是最基础的排序算法,通过不断交换相邻的不正确顺序元素...

    Python实现经典排序算法.rar

    本资源"Python实现经典排序算法.rar"包含了一系列用Python编写的经典排序算法的源代码,这对于学习和理解排序算法的原理及其在Python中的实现极具价值。 首先,让我们来探讨一下排序算法的基本概念。排序算法是一种...

    Python-将几种著名的排序算法可视化的一些python脚本并通过Matplotlib生成动画

    在Python编程领域,排序算法是数据结构与算法学习中的核心部分。这些算法处理数组或列表中的元素,使得它们按照特定顺序排列。可视化排序算法能够帮助我们更好地理解它们的工作原理,而Matplotlib是一个强大的Python...

    Python实现的选择排序算法示例

    选择排序(Selection Sort)是一种简单直观的比较排序算法。它的基本思想是:在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已...

    Python常见排序算法汇总共2页.pdf.zip

    学习和理解这些排序算法对于提升Python编程能力至关重要,它们不仅帮助我们解决问题,还能锻炼思维逻辑。这份压缩包文档可能提供了每种算法的实现代码、示例和性能分析,对于初学者和进阶者都是宝贵的参考资料。不过...

    Python实现选择排序

    选择排序(Selection Sort)是一种简单直观的排序算法。与其他复杂度较高的排序算法相比,选择排序的实现较为简单且易于理解,非常适合初学者学习和掌握。 #### 二、选择排序的工作原理 选择排序的核心思想在于...

    Python实现选择排序.rar

    在编程领域,选择排序是一种简单直观的排序算法,它的主要思想是通过n次比较找到数组中的最小(或最大)元素,然后...虽然选择排序不是最高效的算法,但学习它可以帮助初学者更好地掌握排序算法的基本概念和实现方式。

    Python十大算法.pdf

    尽管这些算法的时间复杂度较高(均为O(n^2)),但它们的实现非常简单,易于理解和编程实现,是学习排序算法的基础。后续章节将继续介绍其他七种排序算法,包括快速排序、归并排序、希尔排序等更高效的排序方法。

    第005章 基于python常问排序算法.rarpython面试

    本章将深入探讨基于Python的常见排序算法,帮助你更好地准备Python面试。 排序算法是计算机科学中的重要组成部分,它能够对一组数据进行排列,使得数据按照特定的顺序排列。在Python中实现这些算法,不仅可以展现你...

    python常见排序算法基础教程.docx

    ### Python常见排序算法基础教程 #### 一、引言 在计算机科学中,排序是一种非常重要的数据处理技术,被广泛应用于各种场景之中。本教程旨在介绍几种常用的排序算法及其在Python中的实现方法,并分析这些算法的...

    Python实现各种排序算法的代码示例总结

    简单排序算法主要包括插入排序、选择排序和冒泡排序,这些算法虽然效率较低,但易于理解和实现,是学习排序算法的基础。 ##### 1. 插入排序 插入排序的基本思想是将一个记录插入到已排序好的有序表中,从而得到一个...

    算法-数据结构之选择排序.rar

    **选择排序**是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素...了解和掌握选择排序有助于深入理解排序算法的原理和性能对比,为后续学习更复杂的排序算法打下基础。

Global site tag (gtag.js) - Google Analytics