Cách dùng quicksort trong vector of pair thay vì dùng sort trong algorithm

dạ vấn đề là em có dùng vector of pair, và em muốn sort phần tử thứ 2, nhưng nếu mà em dùng trong sort trong algorithm có sẵn thì chạy rất lâu ạ, nhưng mà khi em dùng quick sort thì em không biết code như nào ạ, có thể cho e xin code của vector of pair sort theo second.

Bạn code như thế nào mà chạy rất lâu?

Trên DNH không khuyến khích bạn xin code.

3 Likes

Sort theo pt thứ 2 thì so sánh .second rồi so sánh first.

3 Likes

Bạn không biết chỗ nào, nếu muốn sort theo second thì hàm partition bạn xử lí theo arr[i].second().

vậy bạn đã từng viết được code sort dùng quicksort nào chưa, bất kì, hãy đăng lên đây rồi mọi người sẽ đưa ra ý tưởng và sửa giúp bạn

1 Like

cái thông điệp này hơi nhỏ nên chắc nhiều bạn không thấy, chắc xem xét lại, ai muốn post bài cũng phải gõ lại dòng này để xác nhận trước khi post :rofl:

3 Likes

Online Notepad - c++ (anotepad.com)
đây này ạ, với lại em muốn sort theo second, với lại first nó cũng theo second luôn, nhưng khi e sort xong e thấy sai ạ, e so sánh với sort trong thư viện thì cái quicksort e dùng sai, còn sort trong thư viện thì đúng, với lại do em chưa hiểu cách quicksort chạy nên e chỉ điền theo code mẫu trên web có sẵn thôi ạ, sửa giúp e với ạ

Online Notepad - c++ (anotepad.com)
đây ạ, giúp e với ạ, em muốn sort theo second nhưng mà e chưa có hiểu cách chạy của quicksort cho lắm ạ.

  • ý của em là em muốn sort second nhưng cái first nó cũng phải đi theo luôn, nhưng tự nhiên e dùng quicksort thì nó lại ko theo ạ, giúp e với ạ.

Mình muốn bạn up lên code sử dụng hàm std::sort trong <algorithm>, không phải code quicksort của bạn.

2 Likes
swap(arr[left].second, arr[right].second); // sai
swap(arr[left], arr[right]); // nó phải như thế này

swap là swap 2 object với nhau chứ không phải 2 con số với nhau, sửa như thế là xong rồi

4 Likes

ohh!. e cảm ơn ạ, hehe

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?