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

选择排序

时间:2019-11-08 15:10:37      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:mic   index   name   cti   select   padding   规模   com   元素   

选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。

1. 算法步骤

  1. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置

  2. 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

  3. 重复第二步,直到所有元素均排序完毕。

2. 动图演示

  技术图片

 3. 代码实现

# _*_ coding:utf8 _*_

def selectionSort(arr):
    for i in range(len(arr) - 1):
        
        # 记录最小数的索引
        minIndex = i
        for j in range(i + 1, len(arr)):
            # 反向排序 将 ‘<‘ 改为 ‘>‘
            if arr[j] < arr[minIndex]:
                minIndex = j

        # i 不是最小数时,将 i 和最小数进行交换
        if i != minIndex:
            arr[i], arr[minIndex] = arr[minIndex], arr[i]

    return arr

if __name__ == "__main__":
    arr = [3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]
    arr_s = selectionSort(arr)
    print(arr_s)

 

选择排序

标签:mic   index   name   cti   select   padding   规模   com   元素   

原文地址:https://www.cnblogs.com/zhouziyuan/p/11820297.html

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