1、直接选择排序
算法思想:第 i 趟排序在待排序序列 a[i]~a[n] 中选取关键码最小的记录,并和第 i 个记录交换作为有序序列的第 i 个记录。
其实现利用双重循环,外层 i 控制当前序列最小值存放的数组元素位置,内层循环 j 控制从 i+1 到 n 序列中选择最小的元素所在位置 k
时间复杂度:平均、最好和最坏的时间复杂度都是O(N^2)
#coding:utf-8
def sort(origin_lis):
"""
直接选择排序算法
适用于小数据和数组基本有序的
:param origin_lis: 排序的原始数组
:return:
"""
for i in range(0, len(origin_lis) - 1):
# 标记待选择的位置
index = i
for j in range(i + 1, len(origin_lis)):
# 获取选择元素的位置
if origin_lis[j] < origin_lis[index]:
index = j
# 进行交换
if index != i:
temp = origin_lis[i]
origin_lis[i] = origin_lis[index]
origin_lis[index] = temp
return origin_lis
if __name__ == '__main__':
print sort([4,2,3,5,12,13,7,555,4,5,8,2,1,4,7])
2、
网友评论