选择排序算法

2019-07-09  本文已影响0人  赶赶妈

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、

上一篇下一篇

猜你喜欢

热点阅读