01/10/2018, 15:01

Phép so sánh như nào thì tốt hơn?

Bài toán: Kiểm tra một số có nằm trong một khoảng hay không? Ví dụ khoảng là [1,100]

Có 2 cách để so sánh ở đây

  • Cách 1: so sánh ngoài khoảng dùng or
if (a<1) or (a>100) then return False
  • Cách 2 so sánh trong khoảng dùng and
if 1 <= a <= 100 then return True

Vậy cách nào tốt hơn về mặt tốc độ?

Nguyễn Duy Hùng viết 17:07 ngày 01/10/2018

Mình thấy nó như nhau.

明玉 viết 17:02 ngày 01/10/2018

Mình dùng trang này: https://godbolt.org/ , kết hợp với trang này https://defuse.ca/online-x86-assembler.htm, code thử thì số byte phải tốn trong trường hợp xấu nhất (ví dụ lệnh jmp chuẩn là 5 byte, không sử dụng các variant đặc biệt ít tổn byte hơn) thì đều tốn 24 byte cả (trường hợp kiến trúc CPU x86) , giờ muốn biết nhanh hay chậm hơn thì chắc phải mổ xẻ các dòng CPU

HK boy viết 17:15 ngày 01/10/2018

Trong Python bạn viết 1 <= a <= 100 thì máy sẽ hiểu là so sánh a trong khoảng [1, 100], còn trong C/C++ thì máy sẽ hiểu là bạn lấy kết quả của 1 <= a đem so sánh với 100 đấy.

À mà cách nào thuận theo suy nghĩ của bạn hơn thì viết. Mình nghĩ 2 dòng như nhau.

rogp10 viết 17:14 ngày 01/10/2018

Code này không phải C if then là không phải rồi.

HK boy viết 17:12 ngày 01/10/2018

Code này lai căng quá, Python cũng không có then.

Văn Dương viết 17:10 ngày 01/10/2018

Visual Basic à ? Nhưng cũng chưa ai thấy viết so sánh thế bao giờ.

Florastamine viết 17:09 ngày 01/10/2018

Tùy architecture và sức optimize của compiler trâu bò tới cỡ nào . Hỏi mấy câu chung chung như thế này mà không đưa ra ngữ cảnh cụ thể thì khó so sánh lắm.

Bài liên quan
0