首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selection_sort (蟒蛇)

Selection_sort (蟒蛇)
EN

Stack Overflow用户
提问于 2022-08-18 12:03:49
回答 1查看 43关注 0票数 0

我看到了关于选择排序算法的代码:

代码语言:javascript
复制
ls = [2, 5, 1, -9, 10, 13, 7, 2]


def selection_sort(ls):
      for i in range(len(ls)):
         imin = min(range(i,len(ls)), key = lambda x: ls[x])
         ls[i], ls[imin] = ls[imin], ls[i]

我知道有if块的典型的selection_sort,但是这个很难理解。我试着用所有可能的方法打印imin,结果是33337777,这对我来说毫无意义。我想我的问题是,我不知道这个具体的关键是如何工作的。有人对此有任何洞察力吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-18 12:20:46

函数声明

语句是函数定义,它接受一个参数,即list

代码语言:javascript
复制
def selection_sort(ls):

循环初始化

定义了一个for-loop,它将从i = 0 to the len(ls)迭代列表。

代码语言:javascript
复制
for i in range(len(ls)):

主逻辑

for-loop内部,有2条语句

代码语言:javascript
复制
imin = min(range(i,len(ls)), key = lambda x: ls[x])

上面的代码使用python的min函数,包含2个参数、一个迭代器和一个函数,从索引ilen(ls),从列表中找到最小值,并使用作为第二个参数传递的lambda函数返回项的索引。

代码语言:javascript
复制
ls[i], ls[imin] = ls[imin], ls[i]

上面的代码负责将最小项与列表索引I处的项交换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73402779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档