Hướng dẫn swap trong c++
Nội dung
1. Tư tưởng hoán vịTrong thực tế, chúng ta phải xây dựng các chương trình, các hàm hoán vị để hoán đổi giá trị của các phần tử, ví dụ chương trình sắp xếp dãy là một điển hình. Để hoán vị 2 số, ta có thể hình dung giống như chúng ta có 2 cốc. Cốc A đựng nước chanh, cốc B đựng thuốc trừ sâu. Làm sao để chúng ta chuyển nước chanh sang cốc B và chuyển thuốc trừ sâu sang cốc a? Đơn giản là dùng thêm 1 cốc phụ là cốc c và bắt đầu chuyển:
Cách đổi chỗ 2 cốc nước 2. Code hoán vịLàm tương tự trong lập trình ta sẽ hoán đổi được giá trị của 2 biến. // e.g about swap in C - code by nguyenvanquan7826 #include Kết quả:
Ok. Bây giờ thử tách ra thành hàm hoán vị xem sao: 3. Hàm hoán vị trong C// e.g about swap in C - code by nguyenvanquan7826 #include Kết quả:
Oh, Sao kết quả chúng ta không có sự hoán vị? Với chương trình này chúng ta xây dựng 1 hàm hoán vị để đổi vị trí giữa 2 bến a và b, tuy nhiên chúng ta đã sử dụng tham trị nên các giá trị của a và b không thay đổi hay nói cách khác là chúng không được hoán vị cho nhau. Các bạn hiểu truyền tham trị tức là khi gọi hàm hoanvi(a, b) thì ngay lập tức giá trị của a và b (3 và 6) được đưa vào hàm chứ không phải là các biến a, b nên biến a, b của chúng ta không hề thay đổi khi hàm kết thúc. Code đúng như sau: // e.g about swap in C - code by nguyenvanquan7826 #include Kết quả:
Ở trên chúng ta xây dựng hàm hoanvi với 2 đối số là Do hàm dùng con trỏ nên khi gọi hàm chúng ta phải truyền vào địa chỉ của các biến tức là 4. Hàm hoán vị trong C++Nếu các bạn viết trong C++ (file có đuôi là .cpp) thì có thể viết hàm hoán vị dễ hơn một chút như sau. // e.g about swap in C - code by nguyenvanquan7826 #include Hoặc có thể dùng hàm swap có sẵn trong thư viện algorithm #include |