• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

关于Python的排序!!大神来救场啊

def selSort(L):    for i in range(len(L) - 1):        minIndx = i        minVal = L        j = i+1        while j < len(L):            if minVal > L[j]:                minIndx = j                minVal = L[j]            j += 1        if minIndx != i:            temp = L            L = L[minIndx]            L[minIndx] = temp        print L发现一个问题,感觉自己有点懵....for循环下面的while j < len(L)语句和下面的if minIndx != i语句是顺序执行的还是要等while 循环break之后再执行?如果是while loop break之后在执行下面的if,那么就不对了呀?这是排序算法里面的selection算法,比方一个L=[3,5,0,9,1],执行while通过判断语句,minVal不断被赋值,但是这里没有交换数据,交换数据在下面的if中,所以就会出现重复元素,那等到while break额时候,L已经不对了啊,就算到了if也没用了。
除非while和下面的if minIndx != i是同时进行。大神来解答啊??

还有这个代码是对的!
但是我想说selection算法为什么要写成这样?其实;这样写不是更加清爽吗???
def selection_sort(L):    for i in range(len(L)):        for j in range(i+1,len(L)):            if L>L[j]:                L,L[j]=L[j],L    return L

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

发新帖

发布任务需求已有1031168位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!