public class Program
{
public static void Main()
{
Car[] carArr = {
new Car("Benz", 210000), new Car("BMW", 150000), new Car("VW", 130000),
new Car("Ford", 140000), new Car("Kia", 58000), new Car("QQ", 30000),
new Car("Fiat", 200000), new Car("Toyota", 170000), new Car("Mazda", 140000)
};
// 策略:依價格排序(或依名稱 Car.OrderByCarName)
CompareOperation sortOp = new CompareOperation(Car.OrderByCarPrice);
// BubbleSorter.Sort(carArr, sortOp);
QuickSort.Sort(carArr, sortOp);
// SelectionSort.Sort(carArr, sortOp);
// InsertSort.Sort(carArr, sortOp);
for (int i = 0; i < carArr.Length; i++)
Console.WriteLine(carArr[i].ToString());
Console.Read();
}
}
實際專案中極少手寫排序演算法。C# 內建泛型介面
IComparable<T>、IComparer<T>,配合List<T>.Sort()或Array.Sort()即可完成各種排序需求,效能經過高度優化且經過測試。
本系列旨在教學展示演算法原理與委派策略模式應用,生產環境請優先使用框架內建排序。