Read-only archive. Login and posting are unavailable.

PDA

View Full Version : Như thế nào là hiểu 1 thuật toán?


BaronNashor
14-12-2019, 17:28
Ví dụ với Quicksort cho dễ hiểu nhé:

1. Em hiểu ý tưởng thuật toán này (Ví dụ cho 1 dãy số trên giấy em xếp theo quicksort được), hiểu đây là thuật toán chia để trị
2. Nhưng nhiều khi lâu lâu bảo viết lại (Code từ đầu) thuật toán đó chưa chắc đã làm được :pudency::pudency::pudency:

Như thế có coi là hiểu 1 thuật toán không ạ:pudency::pudency:

fivelions
14-12-2019, 17:46
Như thế thì được coi là "Đã từng hiểu" nhé :byebye:

tthixk
14-12-2019, 20:53
Hiểu rõ là biết luồng chạy, mô phỏng lại trên giấy đc. Khi đã hiểu thì code lại là đơn giản, có thể quên edge cases nhưng common cases là phải pass.

angry!
17-12-2019, 19:15
Nhà xây từ từng viên gạch, lúc đầu phải biết gạch là gì, kích thước, phân loại, tô gạch sao, gắn gạch vào tường sao, khi quen rồi thì chỉ cần biết xây nhà cần xây gạch, và xây gạch ở đâu, bao nhiều là đủ, không cần chi tiết vào cách xây gạch. Việc nào cũng vậy chẳng riêng gì thuật toán.

RimA
17-12-2019, 23:59
Làm nhiều thì nhớ lâu, quên có sao đâu, sau naỳ cần thì lục lại là nhớ liền

Cu Long Ko
20-12-2019, 11:12
Ví dụ với Quicksort cho dễ hiểu nhé:

1. Em hiểu ý tưởng thuật toán này (Ví dụ cho 1 dãy số trên giấy em xếp theo quicksort được), hiểu đây là thuật toán chia để trị
2. Nhưng nhiều khi lâu lâu bảo viết lại (Code từ đầu) thuật toán đó chưa chắc đã làm được :pudency::pudency::pudency:

Như thế có coi là hiểu 1 thuật toán không ạ:pudency::pudency:

Nếu thuật toán bạn hiểu đúng, mà code vẫn ko chạy, thì cần bồi dưỡng thêm kiến thức về ngôn ngữ mà bạn dùng để lập trình

alohomora
20-12-2019, 11:15
Ví dụ với Quicksort cho dễ hiểu nhé:

1. Em hiểu ý tưởng thuật toán này (Ví dụ cho 1 dãy số trên giấy em xếp theo quicksort được), hiểu đây là thuật toán chia để trị
2. Nhưng nhiều khi lâu lâu bảo viết lại (Code từ đầu) thuật toán đó chưa chắc đã làm được :pudency::pudency::pudency:

Như thế có coi là hiểu 1 thuật toán không ạ:pudency::pudency:

hiểu ý tưởng thì phải viết lại được happy case chứ

dreamnight
20-12-2019, 14:00
Ví dụ với Quicksort cho dễ hiểu nhé:

1. Em hiểu ý tưởng thuật toán này (Ví dụ cho 1 dãy số trên giấy em xếp theo quicksort được), hiểu đây là thuật toán chia để trị
2. Nhưng nhiều khi lâu lâu bảo viết lại (Code từ đầu) thuật toán đó chưa chắc đã làm được :pudency::pudency::pudency:

Như thế có coi là hiểu 1 thuật toán không ạ:pudency::pudency:

Như trên đã gọi là tạm hiểu rồi, từ think tời do nó còn nhiều thứ lắm.

dolongdown
20-12-2019, 16:51
Phải cài đặt được thuật toán mới là thực sự hiểu thuật toán đó.
Việc cài đặt thuật toán bao gồm thiết kế cấu trúc dữ liệu + các bước chạy thuật toán đó => như vậy gần như là bạn đã lập trình được thuật toán rồi đấy.

Berberin
28-12-2019, 01:00
Nói ở ví dụ của thớt thì hiểu được quicksort = thớt phải chứng minh được quicksort đúng, chỉ ra được trường hợp quicksort chậm như rùa...

Việc code quicksot là diễn tả thuật toán quicksort bằng ngôn ngữ lập trình thôi, việc đó chẳng khác gì phát biểu thuật toán quicksort bằng tiếng Việt. Hiểu thuật toán mà code xịt là do kỹ năng lập trình kém.