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

选择排序

时间:2017-11-03 23:51:22      阅读:308      评论:0      收藏:0      [点我收藏+]

标签:python   选择排序   

一、什么是选择排序

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


二、选择排序的思想

  • 每次循环时假定最前面的值时是最大或最小的

  • 然后找到后面值中最大或最小值与之交换

  • 选择排序的时间复杂度也是O(n^2),但是由于交换次数比冒泡排序要少,所以比冒泡排序快


三、Python代码实现

import random
import time

def selection_sort(array):
    length = len(array)
    for i in range(0, length-1):
        min = i
        for j in range(i+1, length):
            if array[min] > array[j]:
                min = j
        array[i], array[min] = array[min], array[i]
    return array

if __name__ == "__main__":
    start_time = time.time()

    array = []
    for i in range(1000):
        array.append(random.randrange(10000))
    print(array)

    new_array = selection_sort(array)
    print(new_array)

    end_time = time.time()
    print(end_time-start_time)

技术分享

    最外层循环时,先假定i当前值时最小的,然后内循环遍历剩余值,当发现比i小的值时,先不交换,仅仅把min的值换成较小的值的下标,等内循环结束时,再交换i与min下标的值。

本文出自 “戴柏阳的博客” 博客,请务必保留此出处http://daibaiyang119.blog.51cto.com/3145591/1978764

选择排序

标签:python   选择排序   

原文地址:http://daibaiyang119.blog.51cto.com/3145591/1978764

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