GIẢI THÍCH MỘT SỐ DẠNG BIG O: O(LOGN) Đây là một độ phức tạp điển hình, có rất nhiều trong các dạng cấu trúc dữ liệu và giải thuật cơ bản. Nắm được cách tính độ phức tạp O(logn) của các thuật toán sẽ giúp bạn tự tin hơn được 50% trong hầu hết các dạng big O. Trước khi bắt đầu bài viết, mình muốn các bạn cần tìm hiểu qua về hai bài viết cũ của mình về Big O là gì và cách tính độ phức tạp của Big O cho hàm đệ quy. Bạn tham khảo qua hai bài viết sau:
Viết code thế nào cho sạch? Thời xưa, con người ta thường chú trọng đến hiệu suất chương trình, nên các tên gọi của các biến, các phương thức thường được đặt một cách khá sơ sài. Càng về sau, người ta càng nhận ra được giá trị của việc có một đoạn code sạch – đoạn code được ghi một cách rõ ràng, dễ hiểu – là như thế nào. Mình khuyên bạn nên đọc thử cuốn sách Clean Code để có cái nhìn chi tiết hơn. Bài viết này mình chỉ dựa vào cuốn sách đó để tổng hợp một số ý chính. Nếu bạn có một mớ code “bẩn” – đoạn code không được trau chuốt về câu từ, các tên biến được đặt lung tung, thì theo thời gian, nó sẽ như thế này. Bạn thường được gọi là “author” (tác giả) của một chương trình mà bạn viết, vì chương trình của bạn sẽ viết cho những người khác đọc. Và thậm chí, kể cả bạn đọc code cũng nhiều hơn cả viết code đấy nhé! Bạn có tin không? Vào những năm 80, chúng ta có một trình biên dịch tên là Emacs. Đặc điểm của chương trình này là ghi nhận lại mọi hành động của bạn. T...