Cho list, nhiệm vụ sắp xếp theo phần tử thứ hai trong sublist. Dùng bubble sort đơn giản.
Ví dụ
Input: [['CCC', 15], ['AAA', 10], ['RRRR', 2],['XXXX', 150]] Output: [['RRRR', 2], ['AAA', 10], ['CCC', 15], ['XXXX', 150]]
Thuật toán
Bước 1: Cho một list. Bước 2: Truy cập phần tử thứ hai của sublist bằng nested loops. Bước 3: Duyệt qua tất cả phần tử mảng. Bước 4: i phần tử cuối đã ở đúng vị trí. Bước 5: Duyệt mảng từ 0 đến n-i-1. Bước 6: Hoán đổi nếu phần tử hiện tại lớn hơn phần tử tiếp theo.
Ví dụ mã
# Chương trình Python sắp xếp list theo phần tử thứ hai của sublist
# Cách in-place, dùng biến thứ ba.
def sortlist(A):
l = len(A)
for i in range(0, l):
for j in range(0, l-i-1):
if (A[j][1] > A[j + 1][1]):
tempo = A[j]
A[j] = A[j + 1]
A[j + 1] = tempo
return A
# Driver Code
A = [['AAA', 10], ['CCC', 15], ['RRRR', 2], ['XXXX', 150]]
print(sortlist(A))
Kết quả
[['RRRR', 2], ['AAA', 10], ['CCC', 15], ['XXXX', 150]]