Các bác ở diễn đàn có thể chia sẻ 1 vài thuật toán trong lập trình được không, vd như cấu trúc dữ liệu Stack,…
Cần tìm hiểu về thuật toán
Đọc sách Cấu trúc dữ liệu và Giải thuật của Lê Minh Hoàng nhé.
Chia sẻ vài thuật toán?
Có phải bạn đang chuẩn bị bài thuyết trình, chứ hỏi thế này thì khó quá.
Thuật toán thì có những cái cực nhỏ, lại có những cái cực to, trong bài thuyết trình bạn sẽ không thể mô tả nổi vì không đủ thời gian.
Thuật toán cực nhỏ ví dụ như thuật toán đổi chỗ 2 biến a và b sử dụng phép cộng, chỉ tốn 3 dòng code, mình minh hoạ bằng C:
a = a + b;
b = a - b;
a = a - b;
Ngoài việc đổi chỗ bằng phép cộng, bạn có thể tìm thêm thuật toán đổi chỗ bằng phép xor
, thuật toán đổi chỗ sử dụng biến trung gian, các thuật toán sắp xếp…
Một thuật toán đủ to để bạn không thể giải thích kỹ càng trong một buổi thuyết trình, đó là Hàm băm mật mã SHA-512
, bạn có thể tìm hiểu Google.
CTDL là khác à nha thuật toán chỉ là dãy các bước có thứ tự, rõ ràng (và đơn nghĩa), sẽ dừng và phải có nhiệm vụ cụ thể (vì vậy chỉ ra 1 thuật toán riêng là phải biết nó làm gì). Các định nghĩa kinh điển thì hàm ý rằng khi đã gọi là algo thì nó phải đúng 100%, nhưng trong thực tế sử dụng thì lại có từ “wrong algorithm” =) và pseudodeterministic algorithm, trong đó có Rabin-Miller.