寒假来了,小学生领到本学期的学习成果 -- 成绩单
你家宝贝获得奖状没? (单选)
0人
0%
A.必须滴
0人
0%
B.再接再厉,明年加油
投票
假设你是班主任,记录了每位同学的总成绩
你需要将成绩表按总分从多到少顺序排列。该如何做呢?
● 遍历成绩表,找出总分最高的同学,并将同学添加到一个新列表中
● 排除总分第一的同学后,再次遍历成绩表,找出剩下总分最高的同学
● 按照这个逻辑继续,将得到一个有序列表
● 选择排序的时间复杂度
要找出分数最高的同学,必须检查列表中的每个同学。
需要的时间为O(n)
这里我们要注意下,每一次检查的元素在减少,最后一次检查的元素只有一个,之所以运行时间还是用O(n)表示,在正无穷下,平均检查的元素个数为 n
需要执行 n 次
>>> 故需要的总时间为:
O(n^2)
Python 代码实现
● Python 代码思路:
① 定义一个函数,找出原列表中值最大的索引值(下角标)
② 将找出的最大值添加到新列表中,并根据索引值删除原列表中的元素
● Python 代码:
>>>Python 算法 03-- 数组和链表(下)
本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/286937.html
赞 (192)
打赏 微信扫一扫
郭雷:让反馈控制“对付”智能时代不确定性
« 上一篇2020-01-13 10:27:18
华为基本法解析
下一篇 »2020-01-13 10:42:22