2013-10-02 25 views
0
def selectionSort(list1): 
    for sixNumbers in range(len(list1) - 1, 0, -1): 
     maxPos = 0 
     for position in range(1, sixNumbers + 1): 
      if list1[position] > list1[maxPos]: 
       maxPos = position 

     value = list1[sixNumbers] 
     list1[sixNumbers] = list1[maxPos] 
     list1[maxPos] = value 

def main(): 
    list1 = [45, 7, 5, 24, 12, 1] 
    selectionSort(list1) 
    print(list1) 

main() 

如何不使用len()?我的老師告訴我不要使用內置的排序功能。任何建議?另外,不要給我代碼,給我一些提示,所以我可以嘗試重寫它。Python Selectionsort,不能使用len()

+2

'len()'不是內置'sort()'函數。你不允許使用任何內置函數嗎? –

+3

'sixNumbers'對於單個數字來說是一個非常糟糕的名字。 –

+1

@ErikAllik我將它重命名爲i – Singh2013

回答

0

在不使用len()的情況下對元素進行計數的一種非常愚蠢的方式是使用for循環來循環使用值。每次循環獲得計數都會遞增。