Hỏi về thuật toán sắp xếp trong Python

Em viết chương trình sắp xếp lại phần tử trong list nhưng lại bị ngược(sắp xếp tăng dần thành giảm dần và ngược lại). Em biết có phương thức list.sort() nhưng em thử tự viết thì bị như này. Xem giúp em em đang sai chỗ nào với ạ.Dưới là code của em:

#Tạo mảng ngẫu nhiên và sắp xếp

import random as ra

l = list(range(25))
ra.shuffle(l)
print("Mang da tao: ", l)
#l.sort()
#print(l)

for i in range(25):
    for j in range(25):
        if l[i] > l[j]:#???????
            tmp = l[i]
            l[i] = l[j]
            l[j] = tmp
        j += 1
    i += 1
print("Done")
print("Mang da sap xep la: ", l)

Kết quả:

Mang da tao:  [18, 4, 19, 0, 23, 14, 15, 17, 7, 12, 24, 10, 21, 5, 20, 22, 2, 9, 13, 6, 11, 8, 16, 3, 1]
Done
Mang da sap xep la:  [24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

Process finished with exit code 0

2 dòng này để làm gì?

2 Likes

i và j có miền giá trị như thế thì ko sort được đâu.

4 Likes

Thay dấu lớn thành dấu nhỏ hơn là xong

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?