Chỉ cần tự hỏi tại sao Java
và .NET Framework
sử dụng thuật toán sắp xếp khác nhau theo mặc định.
Trong Java Array.Sort()
sử dụng thuật toán Hợp nhất theo mặc định và như Wikipedia.com nói:
Trong Java, các phương thức Arrays.sort () sử dụng sắp xếp hợp nhất hoặc quicksort được điều chỉnh tùy thuộc vào kiểu dữ liệu và để chuyển đổi hiệu quả thực hiện sang sắp xếp chèn khi sắp xếp ít hơn bảy phần tử mảng
Trong .NET Framework Array.Sort/List.Sort()
sử dụng Sắp xếp nhanh làm thuật toán sắp xếp mặc định ( MSDN ):
List.Sort () sử dụng Array.Sort, sử dụng thuật toán QuickSort. Việc thực hiện này thực hiện một loại không ổn định; nghĩa là, nếu hai phần tử bằng nhau, thứ tự của chúng có thể không được giữ nguyên. Ngược lại, một loại ổn định bảo tồn thứ tự các phần tử bằng nhau.
Bằng cách nhìn vào bảng "So sánh các thuật toán" tuyệt vời, chúng ta có thể thấy rằng cả hai thuật toán có hành vi khá khác nhau từ các quan điểm về trường hợp xấu nhất và sử dụng bộ nhớ:
Cả hai Java
và .NET
là các Khung tuyệt vời để phát triển Giải pháp Doanh nghiệp, cả hai đều có nền tảng để phát triển nhúng. Vậy tại sao họ lại sử dụng thuật toán sắp xếp khác nhau theo mặc định, bạn có suy nghĩ gì không?