一、什么是选择排序
选择排序(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
原文地址:http://daibaiyang119.blog.51cto.com/3145591/1978764