誰能告訴我爲什麼我的程序工作怪異。我正在嘗試按升序對list1
進行排序。此代碼是我正在編寫的快速排序程序的一部分。按照我在這段代碼中應用的邏輯,我也手動檢查過,輸出應該是[1,2,3,4,5]。但是輸出結果是[1,2,2,4,5]。你能告訴出了什麼問題嗎?輸出錯誤 - 按我的邏輯
list1=[3,2,1,5,4]
n_list1=len(list1)
count=0
for position1, item1 in enumerate(list1[0:n_list1]):
temp=item1
count=count+1
for position2 in range(count,n_list1):
if list1[position1]>list1[position2]:
list1[position1]=list1[position2]
list1[position2]=temp
temp=list1[position1]
print list1
編輯:我所試圖做的是這樣的:
我開始的第一個元素具有以下(N-1)的元素比較,並與第一個交換的最小元素。現在我轉到第二個元素,並將其與以下(n-2)個元素進行比較,並與這些(n-2)個元素中的最小元素進行交換。像這樣我前進。
注意:這是我的quicksort程序的一部分,它本身不是quicksort。這部分是針對list1
,我指定的數字小於樞軸。另一個代碼將用於list2
,我將分配大於數據透視的數字。
@Harpreet:看到我編輯的答案 – pyfunc 2010-09-30 20:43:13