选择排序
发布日期: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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月27日 18时26分28秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
记一次曲折的Debug经历
2021-07-03
Impala支持Google云存储开发笔记
2019-04-30
如何在Apache JIRA中搜索issue
2019-04-30
scrapy 排错记录
2019-04-30
ACM路上的一大失误
2019-04-30
HDOJ2049 不容易系列之(4)——考新郎
2019-04-30
CodeForces 248B - Chilly Willy - 找规律
2019-04-30
POJ-2418 Hardwood Species(Trie树)(map)
2019-04-30
HDU-4300 Clairewd’s message + 4333(扩展KMP)
2019-04-30
HDU 1592 Half of and a Half(高精度)
2019-04-30
POJ-3304 Segments(计算几何)
2019-04-30
UVA-11538 Chess Queen(数学)
2019-04-30
UVA-11401 Triangle Counting(数学优化)
2019-04-30
Codeforces Round #369 (Div. 2)
2019-04-30
UVA 11426 GCD - Extreme (II)(欧拉函数)
2019-04-30
HDU-2838 Cow Sorting(树状数组)
2019-04-30
POJ-2299 Ultra-QuickSort(树状数组)(离散化)
2019-04-30
基于SSM的兼职论坛系统的设计与实现
2019-04-30