选择排序
发布日期:2021-06-30 10:36:23 浏览次数:2 分类:技术文章

本文共 849 字,大约阅读时间需要 2 分钟。

参考链接1:

参考链接2:

一. 算法步骤

1.首先找到最小(大)元素,存放到排序序列的起始位置:(先通过索引存储,比完一轮换位置

              假设索引0是小(大)元素,然后索引1到最后一个,逐个比较。

              每一次比较,都将 最小(大)元素的索引存起来。

              直到比完第一轮,第一个位置元素与最小(大)元素。

2.假设索引1数是小(大)元素,然后从索引2到最后一个,逐个比较。方法同上。

二. 动图演示

动图解释:

 未排序的数据

已排序的数据

 索引遍历未排序

待排序

三. 代码实现过程

1.实现第一轮的比较

def selectionSort(arr):        # 记录最小数的索引    minIndex = 1    for j in range(1 + 1, len(arr)):        if arr[j] < arr[minIndex]:            minIndex = j    # i 不是最小数时,将 i 和最小数进行交换    if 1 != minIndex:        arr[1], arr[minIndex] = arr[minIndex], arr[1]    return arr

 2.第N轮的比较

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

 

 

转载地址:https://it-chengzi.blog.csdn.net/article/details/105130323 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:插入排序
下一篇:python方法的分类(实例方法、类方法、静态方法)

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月27日 18时26分28秒