2012-08-25 37 views
6

Lúc đầu, tôi sẽ cung cấp một liên kết đến mã: http://ideone.com/6k8R6

On tôi Intel Core 2 Duo, PHP 5.4.6 Kết quả là:
usort: 7.8763520717621
quicksort: 2.9220938682556
(usort là chậm hơn so với quicksort)

Nhưng trên kết quả Ideone là:
usort: 0.0313699245453
quicksort: 0.0621209144592
(usort nhanh hơn quicksort)

Tôi cũng đã kiểm tra mã tại máy tính của bạn tôi (Intel Core i5, PHP 5.4.4) và usort cũng nhanh hơn.

Câu hỏi của tôi là: tại sao đôi khi quicksort nhanh hơn usort và đôi khi usort nhanh hơn?PHP usort tốc độ

+0

Tôi nghi ngờ đó là vì bạn đang sử dụng một tập dữ liệu thực sự nhỏ trên ideone và bạn đã triển khai quicksort trong PHP thuần túy, trong khi usort là một hàm thư viện. –

+0

Tôi tin rằng điều này thực sự dựa trên CPU do Song song, tôi nhớ đọc một cái gì đó về điều này một nơi nào đó .... hmmm, tôi nghĩ rằng đó là wikipedia thực sự: http://en.wikipedia.org/wiki/Quicksort nhưng đầu của tôi sẽ làm tổn thương người nông dân đọc nó thông qua. – Sammaye

+0

Để thêm vào đó - tập dữ liệu của bạn là bốn mục. Điều đó thậm chí không đủ để chứng minh nhanh chóng! – duskwuff

Trả lời

1

Quicksort được coi là một trong những thuật toán sắp xếp nhanh nhất trên dữ liệu chưa được phân loại và dữ liệu chậm nhất trên đã được sắp xếp (hoặc gần như được sắp xếp).

+0

Mã giống nhau trên mỗi máy tính và chức năng 'set ($ uzytkownik);' được sử dụng để đặt mảng thành trạng thái chưa phân loại trước mỗi phân loại (tôi xin lỗi vì bất kỳ lỗi ngữ pháp nào, nhưng tôi đến từ Ba Lan và nó khá trễ đối với tôi;)). –

Các vấn đề liên quan