Sắp xếp mảng trong Python là quá trình sắp xếp các phần tử trong một mảng theo thứ tự nhất định, thường là tăng dần hoặc giảm dần. Đây là một thao tác quan trọng trong lập trình, giúp tối ưu hóa việc tìm kiếm, truy xuất dữ liệu và cải thiện hiệu suất thuật toán. Trong bài viết này, mình sẽ hướng dẫn bạn các cách sắp xếp mảng hiệu quả trong Python, từ việc tự triển khai thuật toán đến sử dụng các phương thức có sẵn như sort()
và sorted()
.
Điểm chính cần nắm
- Sắp xếp mảng trong Python: Giới thiệu về khái niệm sắp xếp mảng trong Python, giúp tổ chức dữ liệu theo thứ tự tăng dần hoặc giảm dần để dễ dàng xử lý và truy xuất.
- Các cách để sắp xếp mảng trong Python: Tổng hợp các phương pháp sắp xếp mảng phổ biến, từ thuật toán thủ công đến các hàm có sẵn trong Python.
- Sử dụng thuật toán sắp xếp: Triển khai các thuật toán sắp xếp như Bubble Sort, Quick Sort, Merge Sort để sắp xếp mảng theo cách thủ công.
- Sử dụng phương thức sort() của list: Chuyển đổi mảng thành danh sách và sử dụng phương thức
.sort()
để sắp xếp trực tiếp. - Sử dụng hàm sorted(): Dùng hàm
sorted()
để tạo một danh sách mới đã sắp xếp mà không làm thay đổi mảng gốc.
- Vietnix – Giải pháp lưu trữ tốc độ cao, bảo mật vững chắc: Giới thiệu dịch vụ lưu trữ server, hosting, VPS chất lượng cao của Vietnix, đảm bảo hiệu suất và bảo mật tối ưu.
Sắp xếp mảng trong Python là gì?
Sắp xếp mảng trong Python là quá trình sắp xếp các phần tử trong một mảng (array
) theo thứ tự nhất định, thường là tăng dần hoặc giảm dần. Vì module array
trong Python không hỗ trợ phương thức sort()
, nên có thể sắp xếp mảng bằng các cách sau:
- Dùng thuật toán sắp xếp thủ công (như Bubble Sort, QuickSort, Merge Sort, v.v.).
- Chuyển đổi mảng thành list và dùng phương thức
sort()
của list. - Dùng hàm
sorted()
của Python để tạo một danh sách mới đã sắp xếp.

Các cách để sắp xếp mảng trong Python
Sắp xếp mảng trong Python là quá trình sắp xếp các phần tử trong một mảng (array) theo thứ tự nhất định, thường là tăng dần hoặc giảm dần. Vì module array
trong Python không hỗ trợ phương thức sort()
, nên có thể sắp xếp mảng bằng các cách sau:
- Tự triển khai thuật toán sắp xếp (Bubble Sort, Quick Sort, v.v.).
- Chuyển đổi sang list và dùng
sort()
. - Dùng hàm
sorted()
để tạo mảng đã sắp xếp.

Sử dụng thuật toán sắp xếp
Một trong những cách sắp xếp mảng trong Python là tự triển khai thuật toán sắp xếp, chẳng hạn như Bubble Sort. Thuật toán này hoạt động bằng cách so sánh từng cặp phần tử liền kề và hoán đổi chúng nếu thứ tự của chúng không đúng, lặp lại quá trình cho đến khi mảng được sắp xếp hoàn toàn.
Ví dụ:
import array as arr
# Khởi tạo mảng
a = arr.array('i', [10, 5, 15, 4, 6, 20, 9])
# Sử dụng Bubble Sort để sắp xếp mảng
for i in range(len(a)):
for j in range(i + 1, len(a)):
if a[i] > a[j]:
a[i], a[j] = a[j], a[i]
print(a)
Kết quả:
array(‘i’, [4, 5, 6, 9, 10, 15, 20])
Sử dụng phương thức sort()
của list
Mặc dù module array
trong Python không hỗ trợ phương thức sort()
, nhưng kiểu dữ liệu danh sách (list
) thì có. Vì vậy, một cách để sắp xếp mảng là chuyển đổi nó thành danh sách, sử dụng phương thức .sort()
để sắp xếp, rồi chuyển danh sách đã sắp xếp trở lại thành mảng.
Các bước thực hiện:
- Chuyển đổi mảng (
array
) thành danh sách (list
) bằng.tolist()
. - Sử dụng phương thức
.sort()
của danh sách để sắp xếp. - Chuyển danh sách đã sắp xếp trở lại thành mảng (
array
).
Ví dụ:
import array as arr
# Khởi tạo mảng
orgnlArray = arr.array('i', [10, 5, 15, 4, 6, 20, 9])
print("Mảng ban đầu:", orgnlArray)
# Chuyển đổi mảng thành danh sách
sortedList = orgnlArray.tolist()
# Sắp xếp danh sách
sortedList.sort()
# Chuyển danh sách đã sắp xếp thành mảng
sortedArray = arr.array('i', sortedList)
print("Mảng sau khi sắp xếp:", sortedArray)
Kết quả:
- Mảng ban đầu: array(‘i’, [10, 5, 15, 4, 6, 20, 9])
- Mảng sau khi sắp xếp: array(‘i’, [4, 5, 6, 9, 10, 15, 20])
Sử dụng hàm sorted()
Hàm sorted()
là một cách đơn giản và hiệu quả để sắp xếp mảng trong Python mà không làm thay đổi mảng gốc. Thay vì chuyển đổi sang danh sách và dùng .sort()
, ta có thể truyền trực tiếp mảng (array
) vào sorted()
để nhận về một danh sách đã sắp xếp, sau đó chuyển danh sách này về lại kiểu array
nếu cần.
Cú pháp:
sorted(iterable, reverse=False)
# iterable: Đối tượng có thể lặp, như list, tuple, array, v.v.
# reverse=False: Sắp xếp theo thứ tự tăng dần (mặc định). Đặt reverse=True để sắp xếp theo thứ tự giảm dần.
Ví dụ:
import array as arr
# Khởi tạo mảng
a = arr.array('i', [10, 5, 15, 4, 6, 20, 9])
# Sử dụng sorted() để tạo danh sách đã sắp xếp
sortedArray = arr.array('i', sorted(a))
print("Mảng sau khi sắp xếp:", sortedArray)
Kết quả:
Mảng sau khi sắp xếp: array(‘i’, [4, 5, 6, 9, 10, 15, 20])
Vietnix – Giải pháp lưu trữ tốc độ cao, bảo mật vững chắc
Vietnix là một trong những nhà cung cấp hàng đầu tại Việt Nam về dịch vụ thuê máy chủ (server), hosting, VPS và domain. Với cam kết mang đến giải pháp lưu trữ hiệu quả, ổn định và bảo mật cao, Vietnix không ngừng nâng cấp chất lượng dịch vụ, đồng hành cùng doanh nghiệp tối ưu hóa hệ thống và bảo vệ dữ liệu. Hơn 80.000 khách hàng đã tin tưởng lựa chọn Vietnix nhờ vào hạ tầng mạnh mẽ, dịch vụ chuyên nghiệp và đội ngũ hỗ trợ kỹ thuật 24/7.
Thông tin liên hệ:
- Website: https://vietnix.vn/
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, TP.HCM
Câu hỏi thường gặp
Có thể sắp xếp mảng trong Python không?
Có, nhưng do module array
không hỗ trợ phương thức sort()
, bạn cần chuyển đổi mảng thành danh sách hoặc sử dụng thuật toán sắp xếp thủ công.
Sự khác biệt giữa sort()
và sorted()
trong Python là gì?
sort()
: Chỉ dùng cho list, sắp xếp trực tiếp trên danh sách và không trả về giá trị mới.sorted()
: Dùng được cho nhiều kiểu dữ liệu (list, tuple, array, v.v.), trả về một danh sách mới đã sắp xếp.
Làm thế nào để sắp xếp mảng theo thứ tự giảm dần?
Dùng sorted()
hoặc sort()
với tham số reverse=True
:
Ví dụ:import array as arr a = arr.array('i', [10, 5, 15, 4]) sorted_a = arr.array('i', sorted(a, reverse=True)) print(sorted_a) # Output: array('i', [15, 10, 5, 4])
Bubble Sort là gì và khi nào nên dùng?
Bubble Sort là thuật toán sắp xếp đơn giản nhưng chậm, chỉ phù hợp với mảng nhỏ do có độ phức tạp O(n²).
Quick Sort có tốt hơn Bubble Sort không?
Có. Quick Sort nhanh hơn đáng kể với độ phức tạp trung bình O(n log n), phù hợp với mảng lớn.
Có thể sắp xếp mảng chứa chuỗi trong Python không?
Có. Bạn có thể dùng sorted()
hoặc sort()
với mảng chứa chuỗi:
Ví dụ:arr = ["banana", "apple", "cherry"] sorted_arr = sorted(arr) print(sorted_arr) # Output: ['apple', 'banana', 'cherry']
Sắp xếp mảng có chứa số âm trong Python như thế nào?
Không có gì khác biệt, Python hỗ trợ sắp xếp số âm như số dương:
Ví dụ: import array as arr a = arr.array('i', [-5, 10, -2, 0, 3]) sorted_a = arr.array('i', sorted(a)) print(sorted_a) # Output: array('i', [-5, -2, 0, 3, 10])
Có thể sắp xếp mảng với khóa tùy chỉnh không?
Có, dùng tham số key
trong sorted()
hoặc sort()
. Ví dụ, sắp xếp theo độ dài chuỗi:
Ví dụ:arr = ["banana", "apple", "kiwi"] sorted_arr = sorted(arr, key=len) print(sorted_arr) # Output: ['kiwi', 'apple', 'banana']
Làm thế nào để sắp xếp mảng 2 chiều trong Python?
Dùng sorted()
với key
:
Ví dụ:matrix = [[3, 2], [1, 4], [5, 0]] sorted_matrix = sorted(matrix, key=lambda x: x[1]) print(sorted_matrix) # Output: [[5, 0], [3, 2], [1, 4]]
Lời kết
Trên đây là ba cách phổ biến để sắp xếp mảng trong Python, mỗi phương pháp đều có ưu và nhược điểm riêng tùy vào nhu cầu sử dụng. Nếu bạn muốn tự tối ưu thuật toán, có thể triển khai Bubble Sort hoặc các thuật toán khác. Trong khi đó, sort()
và sorted()
sẽ giúp bạn xử lý nhanh gọn với hiệu suất tốt. Nếu bạn có bất cứ thắc mắc hay cần hỗ trợ gì, hãy để lại bình luận bên dưới mình hỗ trợ nhanh nhất. Cảm ơn bạn đã đọc!
Mọi người cũng xem: