在python中,排序列表时不使用诸如Sort、set、min、max和remove之类的内置函数
我有一个二维列表,我必须排序,我必须只使用while循环。到目前为止,我的代码并不适用于所有列表在python中,排序列表时不使用诸如Sort、set、min、max和remove之类的内置函数,python,list,sorting,Python,List,Sorting,我有一个二维列表,我必须排序,我必须只使用while循环。到目前为止,我的代码并不适用于所有列表 def sort(list): i = 0 j = 0 while i < len(list): while j < len(list[i]) - 1: if list[i][j] > list[i][j + 1]: temp = list[i][j] l
def sort(list):
i = 0
j = 0
while i < len(list):
while j < len(list[i]) - 1:
if list[i][j] > list[i][j + 1]:
temp = list[i][j]
list[i][j] = list[i][j + 1]
list[i][j + 1] = temp
j += 1
j = 0
i += 1
return list
sort([[3,5,2,8,6,9],[9,1,2,5]])
def排序(列表):
i=0
j=0
而我列表[i][j+1]:
temp=列表[i][j]
列表[i][j]=列表[i][j+1]
列表[i][j+1]=临时
j+=1
j=0
i+=1
返回列表
排序([[3,5,2,8,6,9],[9,1,2,5])
此代码仍然有一些数字不符合顺序。有更好的分类方法吗 您的内部循环只需通过列表一次。这保证了最大的元素位于末尾,但不一定做任何其他事情。您需要添加一个循环,以便在您还有未完成的任务时继续 我留下了我用来强调问题的跟踪语句,以及简单的逆序情况
def sort(list):
i = 0
j = 0
while i < len(list):
done = False
while not done:
done = True
while j < len(list[i]) - 1:
print i, j, list[i][j], list[i][j + 1]
if list[i][j] > list[i][j + 1]:
temp = list[i][j]
list[i][j] = list[i][j + 1]
list[i][j + 1] = temp
done = False
print "SWAP", list[i]
j += 1
j = 0
i += 1
return list
print sort([[6, 5, 4, 3, 2, 1, 0]])
print sort([[3,5,2,8,6,9],[9,1,2,5]])
def排序(列表):
i=0
j=0
而我列表[i][j+1]:
temp=列表[i][j]
列表[i][j]=列表[i][j+1]
列表[i][j+1]=临时
完成=错误
打印“交换”,列表[i]
j+=1
j=0
i+=1
返回列表
打印排序([[6,5,4,3,2,1,0]]
打印排序([[3,5,2,8,6,9],[9,1,2,5])
欢迎来到StackOverflow。请阅读并遵循帮助文档中的发布指南。适用于这里。在您发布代码并准确描述问题之前,我们无法有效地帮助您。具体来说,你得到了什么,你期望得到什么?此代码显示为对每个列表进行独立排序。