From a430cc2607ef9b8fe4aa07778be2980848eabaf0 Mon Sep 17 00:00:00 2001 From: RafaelCaso <94573618+RafaelCaso@users.noreply.github.com> Date: Mon, 11 Nov 2024 10:00:38 -0500 Subject: [PATCH] Update searching_algorithm_revisited.md --- .../searching_algorithm_revisited.md | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/en/docs/chapter_searching/searching_algorithm_revisited.md b/en/docs/chapter_searching/searching_algorithm_revisited.md index 4d8265d20..98ae725dc 100644 --- a/en/docs/chapter_searching/searching_algorithm_revisited.md +++ b/en/docs/chapter_searching/searching_algorithm_revisited.md @@ -1,28 +1,28 @@ # Search algorithms revisited -Searching algorithms (searching algorithm) are used to search for one or several elements that meet specific criteria in data structures such as arrays, linked lists, trees, or graphs. +Searching algorithms (search algorithms) are used to retrieve one or more elements that meet specific criteria within data structures such as arrays, linked lists, trees, or graphs. -Searching algorithms can be divided into the following two categories based on their implementation approaches. +Searching algorithms can be divided into the following two categories based on their approach. - **Locating the target element by traversing the data structure**, such as traversals of arrays, linked lists, trees, and graphs, etc. -- **Using the organizational structure of the data or the prior information contained in the data to achieve efficient element search**, such as binary search, hash search, and binary search tree search, etc. +- **Using the organizational structure of the data or existing data to achieve efficient element searches**, such as binary search, hash search, binary search tree search, etc. -It is not difficult to notice that these topics have been introduced in previous chapters, so searching algorithms are not unfamiliar to us. In this section, we will revisit searching algorithms from a more systematic perspective. +These topics were introduced in previous chapters, so they are not unfamiliar to us. In this section, we will revisit searching algorithms from a more systematic perspective. ## Brute-force search -Brute-force search locates the target element by traversing every element of the data structure. +A Brute-force search locates the target element by traversing every element of the data structure. -- "Linear search" is suitable for linear data structures such as arrays and linked lists. It starts from one end of the data structure, accesses each element one by one, until the target element is found or the other end is reached without finding the target element. -- "Breadth-first search" and "Depth-first search" are two traversal strategies for graphs and trees. Breadth-first search starts from the initial node and searches layer by layer, accessing nodes from near to far. Depth-first search starts from the initial node, follows a path until the end, then backtracks and tries other paths until the entire data structure is traversed. +- "Linear search" is suitable for linear data structures such as arrays and linked lists. It starts from one end of the data structure and accesses each element one by one until the target element is found or the other end is reached without finding the target element. +- "Breadth-first search" and "Depth-first search" are two traversal strategies for graphs and trees. Breadth-first search starts from the initial node and searches layer by layer (left to right), accessing nodes from near to far. Depth-first search starts from the initial node, follows a path until the end (top to bottom), then backtracks and tries other paths until the entire data structure is traversed. -The advantage of brute-force search is its simplicity and versatility, **no need for data preprocessing and the help of additional data structures**. +The advantage of brute-force search is its simplicity and versatility, **no need for data preprocessing or the help of additional data structures**. -However, **the time complexity of this type of algorithm is $O(n)$**, where $n$ is the number of elements, so the performance is poor in cases of large data volumes. +However, **the time complexity of this type of algorithm is $O(n)$**, where $n$ is the number of elements, so the performance is poor with large data sets. ## Adaptive search -Adaptive search uses the unique properties of data (such as order) to optimize the search process, thereby locating the target element more efficiently. +An Adaptive search uses the unique properties of data (such as order) to optimize the search process, thereby locating the target element more efficiently. - "Binary search" uses the orderliness of data to achieve efficient searching, only suitable for arrays. - "Hash search" uses a hash table to establish a key-value mapping between search data and target data, thus implementing the query operation. @@ -30,7 +30,7 @@ Adaptive search uses the unique properties of data (such as order) to optimize t The advantage of these algorithms is high efficiency, **with time complexities reaching $O(\log n)$ or even $O(1)$**. -However, **using these algorithms often requires data preprocessing**. For example, binary search requires sorting the array in advance, and hash search and tree search both require the help of additional data structures, maintaining these structures also requires extra time and space overhead. +However, **using these algorithms often requires data preprocessing**. For example, binary search requires sorting the array in advance, and hash search and tree search both require the help of additional data structures. Maintaining these structures also requires more overhead in terms of time and space. !!! tip @@ -38,11 +38,11 @@ However, **using these algorithms often requires data preprocessing**. For examp ## Choosing a search method -Given a set of data of size $n$, we can use linear search, binary search, tree search, hash search, and other methods to search for the target element from it. The working principles of these methods are shown in the figure below. +Given a set of data of size $n$, we can use a linear search, binary search, tree search, hash search, or other method to retrieve the target element. The working principles of these methods are shown in the figure below. ![Various search strategies](searching_algorithm_revisited.assets/searching_algorithms.png) -The operation efficiency and characteristics of the aforementioned methods are shown in the following table. +The characteristics and operational efficiency of the aforementioned methods are shown in the following table.
Table