数据结构-选择排序(Python)

       假设你的计算机存储了很多乐曲。对于每个乐队,你都记录了其作品被播放的次数。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBabm92a28,size_20,color_FFFFFF,t_70,g_se,x_16

       你要将这个列表按播放次数从多到少的顺序排列,从而将你喜欢的乐队排序。该如何做呢?
一种办法是遍历这个列表,找出作品播放次数最多的乐队,并将该乐队添加到一个新列表中。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBabm92a28,size_20,color_FFFFFF,t_70,g_se,x_16

 再次这样做,找出播放次数第二多的乐队。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBabm92a28,size_20,color_FFFFFF,t_70,g_se,x_16

 继续这样做,你将得到一个有序列表。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBabm92a28,size_20,color_FFFFFF,t_70,g_se,x_16

       下面从计算机科学的角度出发,看看这需要多长时间。别忘了,O(n)时间意味着查看列表中的每个元素一次。例如,对乐队列表进行简单查找时,意味着每个乐队都要查看一次。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBabm92a28,size_20,color_FFFFFF,t_70,g_se,x_16

       要找出播放次数最多的乐队,必须检查列表中的每个元素。正如你刚才看到的,这需要的时间为O(n)。因此对于这种时间为O(n)的操作,你需要执行n次。需要的总时间为O(n × n),即O(n2)。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBabm92a28,size_20,color_FFFFFF,t_70,g_se,x_16

  • 下面是代码示例

       前面没有列出对乐队进行排序的代码,但下述代码提供了类似的功能:将数组元素按从小到大的顺序排列。先编写一个用于找出数组中最小元素的函数。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBabm92a28,size_20,color_FFFFFF,t_70,g_se,x_16

      现在可以使用这个函数来编写选择排序算法了。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBabm92a28,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Znovko

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值