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.
Cách dùng quicksort trong vector of pair thay vì dùng sort trong algorithm
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.
Sort theo pt thứ 2 thì so sánh .second
rồi so sánh first
.
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
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
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.
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
ohh!. e cảm ơn ạ, hehe