01/10/2018, 17:15
Nên dùng hàm sort nào là tốt nhất trong C++
Mọi người cho em hỏi là khi đi thi mà giới hạn thời gian trong 1s thì nên dùng hàm sort nào là tối ưu nhất ạ !
Em đang khá phân vân ở việc nên chọn các hàm sort viết sẵn như sort(),qsort() và sort_heap() hay là nên tự viết function ! Cho em xin lời khuyên với ạ ! Em cảm ơn !
Bài liên quan
Bình thường thì những sort function mà nó có sẵn lúc nào cũng nhanh nhất. Nhưng mà bây giờ để là cơ hội học tập bạn cứ thử làm như sau nhé
_Tạo một array với 1 triệu số integer.
_Sau đó tạo biến
clock_t time_begin, time_end;
_Để
time_begin = clock()
_Dùng mấy function sort mà bạn muốn thử để sort 1 triệu integer.
_Kiếm thời gian mà nó chạy
Làm vậy bạn sẽ coi được thời gian mà mấy cái sort function của bạn nhanh hay chậm. Bạn thử làm vậy rồi post kết quả lên đây cho mọi người học hỏi luôn nha Thanks bạn.
std::sort
vì nó nlogn và ko cần phải viếtCái này phải tạo heap
std::make_heap
trước thành ra hai câu lệnh.Heap sort thực ra kém hơn quick vì bị cache miss nên load lâu.
Thuật toán sắp xếp nào là nhanh nhất? | Tech Talk
//Lời nói đầu Thuở còn ngồi trên ghế trường học đại học, khi học môn "Cấu trúc Dữ liệu & Giải thuật" hay là lúc đi phỏng vấn ở 1 công ty ABC, XYZ nào đó, mà cũng có thể đến tận lúc ngồi trà đá bàn luận với anh em đồng nghiệp chuyện nghề, chuyện...
Timsort — the fastest sorting algorithm you’ve never heard of
Timsort: A very fast , O(n log n), stable sorting algorithm built for the real world — not constructed in academia.
Reading time: 8 min read
Timsort có nhiều tham số (config ) ảo lắm, có sẵn (bên Python) thì đỡ, tự viết thì ngồi tune cũng oải.