在python中,排序列表时不使用诸如Sort、set、min、max和remove之类的内置函数

在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

我有一个二维列表,我必须排序,我必须只使用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]
                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。请阅读并遵循帮助文档中的发布指南。适用于这里。在您发布代码并准确描述问题之前,我们无法有效地帮助您。具体来说,你得到了什么,你期望得到什么?此代码显示为对每个列表进行独立排序。