【发布时间】:2010-09-30 20:03:13
【问题描述】:
谁能告诉我为什么我的程序运行异常。我正在尝试按升序对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) 个元素中的最小元素进行交换。就这样我往前走。
注意:这是我的快速排序程序的一部分,它本身不是快速排序。这部分适用于list1,我为其分配的数字小于枢轴。另一个代码是list2,我将分配大于枢轴的数字。
【问题讨论】: