Các thuật toán sắp xếp trong Game
C# Code
// 1. Bubble Sort: Đơn giản nhất, nhưng chậm nhất (O(n^2)). Chỉ nên dùng cho dữ liệu RẤT nhỏ.
public void BubbleSort(int[] arr) {
int n = arr.Length;
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - i - 1; j++)
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
// 2. Insertion Sort: Hiệu quả với dữ liệu gần như đã được sắp xếp (O(n) trong trường hợp tốt nhất).
public void InsertionSort(int[] arr) {
for (int i = 1; i < arr.Length; ++i) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
// 3. Quick Sort: Rất nhanh trong hầu hết các trường hợp (trung bình O(n log n)). Lựa chọn tốt cho dữ liệu lớn.
// C# cung cấp sẵn Array.Sort() hoặc List.Sort() sử dụng một phiên bản tối ưu của Quick Sort.
public void UseBuiltInSort(List<int> list) {
// Đơn giản và hiệu quả nhất!
list.Sort(); // Sắp xếp tăng dần
// Sắp xếp theo tiêu chí phức tạp (ví dụ: sắp xếp player theo điểm)
// List<Player> players = ...;
// players.Sort((p1, p2) => p2.score.CompareTo(p1.score)); // Giảm dần
}So sánh các thuật toán sắp xếp như Bubble Sort, Insertion Sort và Quick Sort và khi nào nên sử dụng chúng trong game (ví dụ: sắp xếp bảng xếp hạng).