Từ nguồn gốc của các ngôn ngữ lập trình đầu tiên đến các ngôn ngữ lập trình hiện đại đang được sử dụng hiện nay, lập trình máy tính đã phát triển khá nhiều. | From the origin of the first programming languages to the modern programming languages currently in use, computer programming has evolved quite a lot. |
Bây giờ nó đã trở nên mạnh mẽ, hiệu quả và tiên tiến hơn. | It has now become more powerful, efficient, and advanced. |
Tuy nhiên, các khái niệm cơ bản và việc sử dụng cấu trúc dữ liệu và thuật toán trong lập trình máy tính không thay đổi. | However, the fundamental concepts and use of data structure and algorithms in computer programming have not changed. |
DSA (Data Structure and Algorithm) đã là cốt lõi của lập trình máy tính ngay từ đầu. | DSA (Data Structure and Algorithm) has been the core of computer programming from the beginning. |
Bạn có thể đã nghe nói DSA được sử dụng chủ yếu trong lĩnh vực khoa học máy tính. | You might have heard DSA being used mainly in the field of computer science. |
Tuy nhiên, việc sử dụng DSA không chỉ giới hạn trong lĩnh vực máy tính. | However, the use of DSA is not limited to the field of computing. |
Chúng ta cũng có thể tìm thấy khái niệm DSA đang được sử dụng trong cuộc sống hàng ngày. | We can also find the concept of DSA being used in day to day life. |
Trong blog này, chúng ta sẽ thảo luận về khái niệm phổ biến của DSA được sử dụng trong cuộc sống hàng ngày. | In this blog, we will discuss the common concept of DSA that is used in everyday life. |
Nhưng trước đó, chúng ta hãy tìm hiểu cơ bản về Cấu trúc dữ liệu và Thuật toán trước. | But before that, let's learn the basics of Data Structure and Algorithms first. |
Cấu trúc dữ liệu và thuật toán (DSA) là gì? | What is Data Structure and Algorithm (DSA)? |
Cấu trúc dữ liệu và thuật toán là một nhánh của khoa học máy tính liên quan đến việc tạo ra các chương trình máy tính hiệu quả và tối ưu hóa. | Data structure and algorithms is a branch of computer science that deals with creating machine-efficient and optimized computer programs. |
Thuật ngữ Cấu trúc dữ liệu đề cập đến việc lưu trữ và tổ chức dữ liệu, và Thuật toán đề cập đến quy trình từng bước để giải quyết một vấn đề. | The term Data Structure refers to the storage and organization of data, and Algorithm refers to the step by step procedure to solve a problem. |
Bằng cách kết hợp "cấu trúc dữ liệu" và "thuật toán", chúng ta tối ưu hóa các mã trong kỹ thuật phần mềm. | By combining "data structure" and "algorithm", we optimize the codes in software engineering. |
DSA trong phát triển phần mềm | DSA in Software Development |
Cấu trúc dữ liệu và thuật toán (DSA) được áp dụng trong tất cả các lĩnh vực phát triển phần mềm. | Data structure and Algorithm (DSA) is applied in all disciplines of software development. |
DSA là khối xây dựng của quá trình phát triển phần mềm. | DSA is the building block of the software development process. |
Nó không giới hạn ở một ngôn ngữ lập trình duy nhất. | It is not limited to a single programming language. |
Mặc dù các ngôn ngữ lập trình phát triển hoặc không hoạt động theo thời gian, DSA được kết hợp vào tất cả các ngôn ngữ này. | Although programming languages evolve or get dormant over time, DSA is incorporated into all of these languages. |
Hiệu quả của việc phát triển phần mềm phụ thuộc vào việc lựa chọn một cấu trúc dữ liệu và thuật toán thích hợp. | The efficiency of software development depends on the choice of an appropriate data structure and algorithm. |
Có thể có những trường hợp khi bạn được cung cấp cấu trúc dữ liệu hiệu quả nhất để làm việc với một thuật toán mạnh mẽ. | There might be cases when you are provided with the most efficient data structure to work with a robust algorithm. |
Tuy nhiên, nếu cả hai không tương thích với nhau, mã sẽ không tạo ra kết quả mong đợi. | However, if the two are not compatible with each other, the code will not produce the expected outcome. |
Vì vậy, lựa chọn một cấu trúc dữ liệu thích hợp cho một thuật toán là một phần thiết yếu của phát triển phần mềm. | Thus, selecting an appropriate data structure for an algorithm is an essential part of software development. |
Lấy ví dụ, hệ thống đo lường Anh (imperial) được sử dụng ở Mỹ. | Take, for example, the imperial system of measurement used in the US. |
Sao mà ghê vậy? | Why is it so dreadful? |
Mỹ đã sử dụng đơn vị đo lường như inch, sân, dặm, ounce, và pound cho phép đo. | The US has been using measuring units like inches, yard, miles, ounce, and pound for measurements. |
Nếu bạn cần chuyển đổi một yard sang inch, bạn phải nhân nó với 36. | If you need to convert a yard into inches, you have to multiply it by 36. |
Tuy nhiên, trong hệ mét, bạn có thể chỉ cần nhân với 1000 để chuyển mét thành kilômét. | However, in the metric system, you can simply multiply by 1000 to convert meter into kilometer. |
Do đó, tâm trí sẽ dễ dàng thực hiện chuyển đổi trong hệ thống số liệu hơn. | It is thus easier for the mind to do the conversion in the metric system. |
Đó là lý do tại sao hầu hết mọi người thấy hệ thống Anh (imperial) là bất tiện. | That is why most people find the imperial system to be inconvenient. |
Một ví dụ khác của sự bất tiện này là "ounce" được sử dụng cho chất rắn hoặc chất lỏng tùy thuộc vào ngữ cảnh. | Another example of this inconvenience is that "ounce" is used for solid or liquid depending on the context. |
Sự dễ dàng chuyển đổi từ chỉ số này sang chỉ số khác là yếu tố quan trọng nhất ở đây. | The ease of conversion from one to another metric is the most important factor here. |
Trong ví dụ này, chúng ta có thể so sánh các hệ thống đo lường (tức là hệ mét và hệ thống Imperial) với "cấu trúc dữ liệu", trong khi quá trình chuyển đổi từ đơn vị này sang đơn vị khác có thể được coi là thuật toán. | In this example, we can compare the measurement systems (i.e. the metric system and the Imperial system) to "data structures", while the process of conversion from one unit to another can be thought of as the algorithm. |
Điều này cho thấy rằng việc chọn đúng cấu trúc dữ liệu có tác động lớn đến thuật toán và ngược lại. | This shows that choosing the right data structure has a great impact on the algorithm, and vice-versa. |
Một khía cạnh quan trọng khác của việc sử dụng DSA trong phát triển phần mềm là các hạn chế về thời gian và không gian. | Another critical facet of DSA usage in software development is the time and space constraints. |
Các ràng buộc này kiểm tra tính khả dụng của thời gian và không gian cho thuật toán. | These constraints check the availability of time and space for the algorithm. |
Một thuật toán được tối ưu hóa giải quyết cả hai ràng buộc này dựa trên sự sẵn có của tài nguyên. | An optimized algorithm addresses both of these constraints based on the availability of resources. |
Nếu bộ nhớ không phải là vấn đề đối với phần cứng, DSA tập trung nhiều hơn vào việc tối ưu hóa thời gian chạy của thuật toán. | If memory is not an issue for the hardware, DSA focuses more on optimizing the running time of the algorithm. |
Tương tự, nếu phần cứng cũng là một trong hai ràng buộc, thì DSA phải giải quyết cả hai ràng buộc đó. | Similarly, if the hardware has both the constraints, then DSA must address both of them. |
Bạn có thể tìm hiểu thêm về biểu diễn của những phức tạp này trên Phân tích Tiệm cận | You can learn more about the representation of these complexities on Asymptotics Analysis. |
Bạn có thể liên hệ DSA với cuộc sống hàng ngày của bạn như thế nào? | How can you relate DSA to your day to day life? |
Hãy đi sâu vào một số ví dụ về việc sử dụng DSA. | Let's dive into some of the examples of the usage of DSA. |
Cấu trúc dữ liệu | Data Structures |
Cấu trúc Dữ liệu Ngăn xếp để Đảo ngược một Chuỗi | Stack Data Structure to Reverse a String |
Một ngăn xếp là một cấu trúc dữ liệu tuyến tính, "tuyến tính" có nghĩa là các yếu tố được đặt một sau khi khác. | A stack is a linear data structure, "linear" meaning the elements are placed one after the other. |
Một phần tử chỉ có thể được truy cập sau khi đã truy cập các phần tử trước đó. | An element can be accessed only after accessing the previous elements. |
Chúng ta có thể hình dung ngăn xếp giống như một chồng đĩa được đặt chồng lên nhau. | We can visualize a stack like a pile of plates placed on top of each other. |
Mỗi tấm bên dưới tấm trên cùng không thể được tiếp cận trực tiếp cho đến khi các tấm bên trên được tháo ra. | Each plate below the topmost plate cannot be directly accessed until the plates above are removed. |
Chỉ có thể thêm và xóa các tấm từ trên cùng. | Plates can be added and removed from the top only. |
Mỗi tấm là một phần tử và cọc là ngăn xếp. | Each plate is an element and the pile is the stack. |
Theo thuật ngữ lập trình, mỗi tấm là một biến và đống là một cấu trúc dữ liệu. | In the programming terms, each plate is a variable and the pile is a data structure. |
Một đống đĩa | A pile of plates |
Tại sao chúng ta cần một biểu diễn ngăn xếp? | Why do we need a stack representation? |
Bạn có thể tự hỏi tại sao một lập trình viên cần học cách đặt một cái đĩa lên một cái cọc và lấy cái đĩa đó ra khỏi đống. | You might be wondering why a programmer needs to learn how to put a plate on a pile and take the plate out from the pile. |
Hãy cùng tìm câu trả lời cho nó. | Let's find the answer to it. |
Bạn được giao nhiệm vụ đảo ngược một chuỗi. | You are assigned a task of reversing a string. |
Bạn sẽ làm điều này như thế nào? | How would you do it? |
Chuỗi đã cho | Given string |
Bắt đầu chọn một ký tự từ chuỗi và sao chép lần lượt vào vị trí mới. | Start selecting a character from the string and copy it into the new location one by one. |
Bây giờ, hãy để chúng tôi sao chép các mục này từ đầu vào vị trí ban đầu. | Now, let us copy these items from the top into the original location. |
Tuyệt vời, chúng tôi đã đảo ngược thành công một chuỗi bằng cách sử dụng thuộc tính của ngăn xếp (bộ nhớ mới). | Great, we have successfully reversed a string using the property of stack (the new memory). |
Chỉ cho phép chèn và xóa từ trên cùng. | Inserting and removing was only allowed from the top. |
Cách này ngăn xếp được sử dụng trong lập trình. | This way stack is used in programming. |
Cấu trúc dữ liệu hàng đợi khi lên xe buýt | Queue Data Structure while Boarding a Bus |
Một Queue cũng là một cấu trúc dữ liệu tuyến tính trong đó các phần tử được sắp xếp dựa trên FIFO (First In First Out = Vào Trước Ra Trước) quy tắc. | A Queue is also a linear data structure in which the elements are arranged based on FIFO (First In First Out) rule. |
Nó giống như hành khách đứng xếp hàng để lên xe buýt. | It is like the passengers standing in a queue to board a bus. |
Người đầu tiên vào hàng là người lên xe buýt đầu tiên. | The person who first gets into the queue is the one who first gets on the bus. |
Hành khách mới có thể xếp hàng từ phía sau trong khi hành khách ra khỏi xe (bằng cửa) phía trước. | The new passengers can join the queue from the back whereas passengers get out the bus from the front. |
Tại sao chúng ta cần biểu diễn Hàng đợi? | Why do we need a Queue representation? |
Bạn có thể hỏi nơi sử dụng hàng đợi trên máy tính. | You may ask where a queue is used on a computer. |
Giả sử rằng bạn đang ở trong văn phòng của mình và có một mạng gồm năm máy tính. | Assume that you are in your office and there is a network of five computers. |
Bạn đã kết nối tất cả các máy tính này với một máy in. | You have connected all these computers to a single printer. |
Giả sử một nhân viên muốn in tài liệu của mình và gửi lệnh đến máy in thông qua máy tính của anh ta. | Suppose an employee wants to print his documents and sends a command to the printer through his computer. |
Máy in nhận lệnh và bắt đầu in tài liệu. | The printer receives the commands and starts printing the documents. |
Đồng thời, một nhân viên khác gửi lệnh đến máy in. | At the same time, another employee sends commands to the printer. |
Máy in đặt lệnh thứ hai vào hàng đợi. | The printer puts the second command to the queue. |
Lệnh thứ hai chỉ được thực hiện sau khi thực hiện lệnh đầu tiên. | The second command is executed only after the execution of the first command. |
Điều này tuân theo quy tắc FIFO. | This follows the FIFO rule. |
Cấu trúc dữ liệu biểu đồ trong phương tiện truyền thông xã hội và Google Map | Graph Data Structure in Social Media and Google Map |
Biểu đồ là một mạng lưới các mục được kết nối với nhau. | A Graph is a network of interconnected items. |
Mỗi mục được gọi là một nút và kết nối giữa chúng được gọi là cạnh. | Each item is known as a node and the connection between them is known as the edge. |
Bạn có thể sử dụng các phương tiện truyền thông xã hội như Facebook, LinkedIn, Instagram, v.v. | You probably use social media like Facebook, LinkedIn, Instagram, and so on. |
Phương tiện truyền thông xã hội là một ví dụ tuyệt vời về biểu đồ đang được sử dụng. | Social media is a great example of a graph being used. |
Phương tiện truyền thông xã hội sử dụng biểu đồ để lưu trữ thông tin về từng người dùng. | Social media uses graphs to store information about each user. |
Ở đây, mỗi người dùng là một nút giống như trong Graph. | Here, every user is a node just like in Graph. |
Và, nếu một người dùng, hãy gọi anh ta là Jack, trở thành bạn của một người dùng khác, Rose, thì tồn tại một mối quan hệ (kết nối) giữa Jack và Rose. | And, if one user, let's call him Jack, becomes friends with another user, Rose, then there exists an edge (connection) between Jack and Rose. |
Tương tự như vậy, chúng ta càng kết nối với mọi người nhiều hơn, các nút và cạnh của biểu đồ tiếp tục tăng lên. | Likewise, the more we are connected with people, the nodes and edges of the graph keep on increasing. |
Tương tự như vậy, Google Map là một ví dụ khác sử dụng Đồ thị. | Similarly, Google Map is another example where Graphs are used. |
Trong trường hợp của Bản đồ Google, mọi vị trí được coi là các điểm nút và các con đường giữa các vị trí được coi là các cạnh. | In the case of the Google Map, every location is considered as nodes, and roads between locations are considered as edges. |
Và, khi người ta phải di chuyển từ vị trí này đến vị trí khác, Google Map sử dụng các thuật toán dựa trên Đồ thị khác nhau để tìm đường đi ngắn nhất. | And, when one has to move from one location to another, the Google Map uses various Graph-based algorithms to find the shortest path. |
Chúng ta sẽ thảo luận điều này sau trong blog này. | We will discuss this later in this blog. |
Thuật toán | Algorithms |
Thuật toán Sắp xếp để sắp đặt sách trong kệ | Sorting Algorithm to Arrange Books in the Shelf |
Nói một cách dễ hiểu, sắp xếp là một quá trình sắp xếp các mục giống nhau một cách có hệ thống. | In simple terms, sorting is a process of arranging similar items systematically. |
Ví dụ, giả sử bạn đang sắp xếp sách trên giá, dựa trên chiều cao của sách. | For example, suppose you are arranging books on a shelf, based on the height of the books. |
Trong trường hợp này, chúng ta có thể giữ những cuốn sách cao hơn ở bên trái, tiếp theo là những cuốn sách ngắn hơn hoặc chúng ta có thể làm ngược lại. | In this case we can keep the taller books on the left followed by the shorter books or we can do vice versa. |
Khái niệm tương tự này được thực hiện trong các Thuật toán Sắp xếp. | This same concept is implemented in Sorting Algorithms. |
Các thuật toán sắp xếp khác nhau có sẵn trong DSA. | Different sorting algorithms are available in DSA. |
Mặc dù mục đích của mọi thuật toán vẫn giống nhau, nhưng mỗi thuật toán hoạt động khác nhau dựa trên các tiêu chí khác nhau. | Although the purpose of every algorithm remains the same, each algorithm works differently based on various criteria. |
Trong ví dụ trên, nếu chúng ta muốn sắp xếp sách nhanh nhất có thể thì có một số điểm cần lưu ý. | In the above example, if we want to sort the books as fast as we can then there are few points to be considered. |
Sách có thể dễ dàng xáo trộn trên giá không? | Can the books be easily shuffled on the shelf? |
Nếu sách nặng, chúng ta có thể mất nhiều thời gian hơn. | If the books are heavy, it may take us more time. |
Tương tự, có thể có những ràng buộc khác. | Similarly, there may be other constraints. |
Khả năng tiếp cận | Accessibility |
Số sách là bao nhiêu? | What is the number of books? |
Kích thước dữ liệu | Data size |
Chúng ta có thể truy cập chúng nhanh như thế nào? | How fast can we access them? |
Khả năng của phần cứng | Hardware's ability |
Các thuật toán được xây dựng dựa trên tất cả các ràng buộc này để đưa ra một giải pháp tối ưu. | Algorithms are built considering all these constraints to produce an optimal solution. |
Một số ví dụ về các thuật toán này là Sắp xếp theo Bong bóng, Sắp xếp theo Lựa chọn, Sắp xếp Hợp nhất, Sắp xếp Đống và Sắp xếp Nhanh | Some of the examples of these algorithms are Bubble Sort, Selection Sort, Merge Sort, Heap Sort, and Quick Sort. |
Thuật toán Tìm kiếm để Tìm sách Trong Giá | Searching Algorithm to Find a Book in a Shelf |
Tìm kiếm, như tên gọi của nó cho thấy, giúp tìm một mục. | Searching, as its name suggests, helps in finding an item. |
Giả sử bạn muốn tìm kiếm một cuốn sách cụ thể trên giá. | Suppose you want to search for a specific book on a shelf. |
Các cuốn sách trong bản thân không được sắp xếp một cách cụ thể. | The books in the self are not arranged in a specific way. |
Nếu bạn cần tìm cuốn sách trong thời gian ngắn nhất có thể, bạn sẽ làm như thế nào? | If you need to find the book in the shortest possible time, how would you do that? |
Giải pháp cho điều này được cung cấp bởi DSA. | The solution to this is provided by DSA. |
Có thể bạn đang nghĩ "Tôi sẽ tìm cuốn sách ngay từ đầu và định vị nó". | You may be thinking "I will look for the book from the beginning and locate it". |
Trong trường hợp này, bạn sẽ tìm kiếm từng cuốn sách một từ đầu đến cuối kệ. | In this case, you will be searching for books one by one from the start to the end of the shelf. |
Khái niệm tương tự này được thực hiện trong Tìm kiếm Tuyến tính | This same concept is implemented in Linear Search. |
Nhưng, nếu cuốn sách nằm ở đầu kia của giá sách thì sao? | But, what if the book is at the other end of the shelf? |
Quá trình trên có thể mất nhiều thời gian và sẽ không cung cấp giải pháp khả thi. | The above process might take a long time and will not provide a feasible solution. |
Bây giờ, hãy thử một phương thức khác. | Now, let's try another procedure. |
Đầu tiên, sắp xếp sách theo thứ tự bảng chữ cái tăng dần, sau đó tìm kiếm cuốn sách ở giữa. | Firstly, sort the books in ascending alphabetical order then search for the book in the middle. |
Chúng tôi đang tìm kiếm một cuốn sách bắt đầu bằng J. | We are searching for a book that starts with J. |
Vì chúng ta luôn nhìn vào vị trí chính giữa nên vị trí chính giữa giữa A và Z là M chứ không phải J. Bây giờ, so sánh J với M. | Since we are always looking at the middle position, the middle position between A and Z is M, not J. |
Chúng ta biết rằng J nằm trước M. Vì vậy, chúng ta hãy bắt đầu tìm kiếm J ở vị trí giữa của A và M. G là phần tử giữa, một lần nữa J không được tìm thấy. | Now, compare J with M. We know that J lies before M. So let's start searching for J in the middle position of A and M. G is the mid element, again J is not found. |
Vì J nằm giữa G và M, hãy tìm phần tử giữa chúng. | Since J lies between G and M, let's find the mid element between them. |
Vâng, chúng tôi đã tìm thấy J, Xin chúc mừng !!! | Yeah, we have found J, Congratulations!!! |
Và, bạn vừa thực hiện Tìm kiếm nhị phân | And, you have just implemented Binary Search. |
Các thuật toán tìm đường đi ngắn nhất để tìm đường đi ngắn nhất trong Google Map | Shortest Path Finding Algorithms to Find the Shortest Path in Google Map |
Bạn đã bao giờ nghĩ về cách Google Maps có thể chỉ cho bạn con đường ngắn nhất đến đích của bạn chưa? | Have you ever thought about how Google Maps is able to show you the shortest path to your destination? |
Các ứng dụng như Google Maps có thể làm điều đó bằng cách sử dụng một lớp thuật toán được gọi là Thuật toán tìm đường ngắn nhất. | Applications such as Google Maps are able to do that using a class of algorithms called Shortest Path Finding Algorithms. |
Các thuật toán này giải quyết việc tìm đường đi ngắn nhất trong biểu đồ. | These algorithms deal with finding the shortest path in a graph. |
Như trong ví dụ được thảo luận trong cấu trúc dữ liệu Đồ thị ở trên, chúng ta có thể sử dụng thuật toán đồ thị để tìm đường đi ngắn nhất giữa hai vị trí nhất định trên bản đồ. | As in the example discussed in the Graph data structure above, we can use graph algorithms to find the shortest path between two given locations on a map. |
Để minh họa cho vấn đề, chúng ta hãy tìm khoảng cách ngắn nhất giữa A và F trong bản đồ sau. | To illustrate the problem, let's find the shortest distance between A and F in the following map. |
Các giải pháp khả thi cho vấn đề này là gì? | What are the possible solutions to this problem? |
Hãy tìm ra các tuyến đường khả thi cùng với độ dài đường đi của chúng. | Let's figure out the possible routes along with their path length. |
Chúng ta có thể thấy rằng con đường ngắn nhất là Path-3. | We can see that the shortest path is Path-3. |
Nhưng, chúng tôi cũng đã lãng phí thời gian để tính toán các con đường khác mà chúng tôi sẽ không sử dụng. | But, we have wasted time calculating other paths as well, which we are not going to use. |
Để giải quyết vấn đề này mà không mất thời gian, chúng ta có thể bắt đầu từ A và kiểm tra các đường đi lân cận ngắn nhất có thể có (AC và AB). | In order to solve this problem without wasting time, we can start from A and check for the possible shortest neighboring paths (AC and AB). |
Ta có AC là đường đi ngắn nhất. | We have AC as the shortest path. |
Bây giờ chúng ta đang ở C, một lần nữa chọn con đường ngắn nhất trong số các con đường lân cận CE và CD, đó là CD. | Now we are at C, again select the shortest path among its neighboring paths CE and CD, which is CD. |
Từ D, chúng ta có một con đường duy nhất đến F. Từ D, chúng ta cũng có thể đến B, nhưng B đã được thăm rồi nên nó không được xem xét. | From D, we have a single path to F. From D, we can go to B as well but, B is already visited, so it is not considered. |
Chọn con đường DF và chúng tôi đến đích. | Select the path DF and we reach the destination. |
Xin chúc mừng một lần nữa. | Congratulations one more time. |
Bạn đã triển khai Thuật toán Dijkstra | You have implemented Dijkstra's Algorithm. |
Bằng cách này, biểu đồ tìm thấy công dụng của nó trong cuộc sống của chúng ta. | In this way, the graph finds its use in our life. |
Điểm chính | Takeaway |
Khi tôi học năm cuối đại học và ứng tuyển vào các vị trí kỹ sư phần mềm, có một điểm chung giữa thủ tục tuyển dụng của tất cả các công ty. | When I was in the final year of my undergraduate studies and applying for software engineering positions, there was one thing common between the hiring procedure of all companies. |
Tất cả họ đều kiểm tra tôi về các vấn đề liên quan đến việc sử dụng cấu trúc dữ liệu và thuật toán. | They all tested me on problems that involved the use of data structures and algorithms. |
DSA cũng có tầm quan trọng lớn trong quá trình tuyển dụng của các công ty phần mềm. | DSA has great importance in the recruitment process of software companies as well. |
Các nhà tuyển dụng sử dụng DSA để kiểm tra khả năng của lập trình viên vì nó cho thấy khả năng giải quyết vấn đề của ứng viên. | Recruiters use DSA to test the ability of the programmer because it shows the problem-solving capability of the candidate. |
Như bạn có thể thấy từ các ví dụ trên, chúng ta có thể liên hệ DSA với cuộc sống hàng ngày của chúng ta và làm cho việc học tập trở nên thú vị hơn. | As you can see from the above examples, we are able to relate DSA with our day to day life and make it more fun to study. |
Đối với những người không phải là kỹ thuật, họ cũng có thể học các kỹ thuật được sử dụng trong các thuật toán để giải quyết các vấn đề hàng ngày của họ. | For those who are from non-technical backgrounds, they can also learn the techniques used in the algorithms for solving their daily problems. |
Hơn nữa, không thể bỏ qua tầm quan trọng của DSA trong bất kỳ ngôn ngữ lập trình nào. | Furthermore, one cannot neglect the importance of DSA in any programming language. |
DSA không bao giờ tuyệt chủng, đúng hơn là nó đang phát triển bởi vì các máy tính phát triển, trong thế kỷ 21, cần các thuật toán phát triển để giải quyết một vấn đề phức tạp. | DSA never gets extinct, rather it is evolving because the evolving computers, in the 21st century, need evolving algorithms to solve a complex problem. |
Chưa kể, một lập trình viên nên biết cách sử dụng một cấu trúc dữ liệu thích hợp theo đúng thuật toán. | Not to mention, a programmer should know how to use an appropriate data structure in the right algorithm. |
Có một câu nói nổi tiếng: | There is a famous saying: |
Một chiến binh không nên chỉ sở hữu một vũ khí, anh ta phải biết khi nào và làm thế nào để sử dụng nó. | A warrior should not just possess a weapon, he must know when and how to use it. |
(Điểm chính: Một thực tế, điểm hoặc ý tưởng chính cần được ghi nhớ, thường là một sự kiện xuất hiện từ một cuộc thảo luận hoặc cuộc họp.) | (Takeaway: A key fact, point, or idea to be remembered, typically one emerging from a discussion or meeting.) |