为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

asdhjhg 2017-04-17 14:28:28
def selSort(L):     for i in range(len(L) - 1):         minIndx = i         minVal = L[i]         j = i+1         while j < len(L):             if minVal > L[j]:                 minIndx = j                 minVal = L[j]             j += 1         if minIndx != i:             temp = L[i]             L[i] = 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[i]>L[j]:                 L[i],L[j]=L[j],L[i]     return L
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 1234 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信