Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: swap

  1. #1
    Ngày gia nhập
    08 2008
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    28

    Angry swap

    Cho mình hỏi làm sao để hoán vị A[i] và A[j] mà ko dùng biến tạm temp?
    IF YOU ARE ALONE , I'LL BE YOUR SHADOW
    IF YOU WANT TO CRY, I'LL BE YOUR SHOULDER
    IF YOU NEED HAPPY, I'LL BE YOUR SMILE
    BUT ANYTIME YOU NEED A FRIEND
    IT JUST BE ME !!!

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Với a và b là kiểu số làm như sau:
    Code:
    a=a+b;
    b=a-b;
    a=a-b;
    Tương tự với trừ và nhân. Chia thì có nhiều vấn đề, không nên dùng
    Với các kiểu khác thì cần xem xét một chút.
    * Có thể dùng lật bit dùng hàm ^ tương tự như trên. Cách này là ngon nhất
    Đã được chỉnh sửa lần cuối bởi QuangHoang : 13-09-2008 lúc 09:30 AM.

  3. #3
    Ngày gia nhập
    08 2008
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    28

    các hạ quả là pro. xin cam on va xin cam on
    IF YOU ARE ALONE , I'LL BE YOUR SHADOW
    IF YOU WANT TO CRY, I'LL BE YOUR SHOULDER
    IF YOU NEED HAPPY, I'LL BE YOUR SMILE
    BUT ANYTIME YOU NEED A FRIEND
    IT JUST BE ME !!!

  4. #4
    Ngày gia nhập
    08 2008
    Nơi ở
    homeless
    Bài viết
    15

    Anh có thể nói về kỹ thuật lật bit này hông (Em muốn học hỏi )

  5. #5
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    có lật bit gì đâu, chẳng qua là cộng 2 số lại lấy được tổng hai số, lấy tổng đó trừ cho thằng này thì ta được thằng kia. Cách này là làm mẹo thôi, nhưng phải công nhận người nghĩ ra nó cũng thông mình thật.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  6. #6
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Mặc định swap

    có lật bit gì đâu, chẳng qua là cộng 2 số lại lấy được tổng hai số, lấy tổng đó trừ cho thằng này thì ta được thằng kia. Cách này là làm mẹo thôi, nhưng phải công nhận người nghĩ ra nó cũng thông mình thật.
    Có đó bạn ah, cái này không phải mình nghĩ ra, chính xác là học được từ anh Langman nhưng đã chứng mình rằng nó đúng, nội dung như sau:
    Code:
    a^=b^=a^=b;
    Ngắn đến không ngờ, động vào bit nên sẽ chạy nhanh nhất.

  7. #7
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Cám ơn bạn nhiều. Mình mới có dịp sáng mắt ra.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  8. #8
    Ngày gia nhập
    07 2008
    Bài viết
    21

    Trích dẫn Nguyên bản được gửi bởi QuangHoang Xem bài viết
    Có đó bạn ah, cái này không phải mình nghĩ ra, chính xác là học được từ anh Langman nhưng đã chứng mình rằng nó đúng, nội dung như sau:
    Code:
    a^=b^=a^=b;
    Ngắn đến không ngờ, động vào bit nên sẽ chạy nhanh nhất.
    a^=b^=a^=b; la` phép toán gì vậy?
    hok hiểu
    giải thích giùm mình nhé

  9. #9
    Ngày gia nhập
    04 2008
    Bài viết
    336

    " ^ " là phép XOR...
    code ra gió bão

  10. #10
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    http://vi.wikipedia.org/wiki/Ph%C3%A...o_t%C3%A1c_bit
    Bạn tham khảo thêm ở đây.

Các đề tài tương tự

  1. viết hàm swap(hoán đổi) sử dụng phép toán bit
    Gửi bởi cugaru279 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 12
    Bài viết cuối: 10-07-2012, 12:03 PM
  2. code phần swap sao không swap đc. Xem giùm mình vậy
    Gửi bởi lastvampire trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 28-11-2010, 07:37 PM
  3. Bài tập C++ Hàm swap trong dslk.
    Gửi bởi trihn_kt trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 17-04-2010, 08:18 AM
  4. Lập trình C Chưa rõ vấn đề swap 2 số
    Gửi bởi kokichi88 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 29-01-2010, 07:44 PM
  5. vấn đề với swap 2 biến struct
    Gửi bởi vodanh229 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 19-12-2009, 12:40 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn