📜  搜索和排序算法之间的区别

📅  最后修改于: 2021-04-27 05:28:44             🧑  作者: Mango

先决条件:搜索和排序算法

搜索算法旨在检查元素或从使用该元素的任何数据结构中检索元素。根据操作类型,这些算法通常分为两类:

  1. 顺序搜索:顺序搜索是基本且简单的搜索算法。顺序搜索从列表或数组的开头开始。它顺序遍历列表或数组,并检查列表或数组的每个元素。线性搜索是顺序搜索的一个示例。
    线性搜索会逐个检查数组中的每个元素,而不会跳转到任何项目。它搜索数组中的元素,直到找到匹配项。如果找到匹配项,则返回该项目的索引,否则返回-1 。线性搜索算法的最坏情况复杂度是O(N) ,其中N是列表中元素的总数。

    线性搜索的工作原理

    让我们以线性搜索如何工作的示例来理解。假设在此示例中,任务是在数组中搜索元素x 。为了搜索给定的元素,请从数组的最左边的元素开始,然后将x与数组的每个元素一一比较。如果 x与a元素匹配,它返回索引,否则返回-1 。下图说明了这一点:

  2. 间隔搜索:这些算法旨在在排序的数据结构中搜索给定元素。这些类型的搜索算法比线性搜索算法有效得多。二进制搜索是间隔搜索的一个示例。
    二进制搜索通过将数组分为两半来搜索数组中的给定元素。首先,它找到数组的中间元素,然后将给定元素与数组的中间元素进行比较,如果要搜索的元素小于数组中间的项目,则给定元素只能位于左边子数组,否则它位于正确的子数组中。它反复检查,直到找到该元素。二进制搜索算法的最坏情况复杂度为O(log N)

    二进制搜索的工作原理
    让我们以二进制搜索如何工作的示例来理解。假设在此示例中,我们必须在数组中搜索元素x 。为了搜索给定元素,首先我们找到数组的中间元素,然后将x与数组的中间元素进行比较。如果 x与中间元素匹配,我们重新调整中间索引,如果x大于中间元素,则x只能位于中间元素之后的右半子数组中,因此我们递归右半部分,否则递归thr左半部分。它反复检查,直到找到该元素。下图说明了这一点:

排序算法:排序算法用于将列表或数组的数据按特定顺序排列。它可以是数字顺序,也可以是字典顺序。例如:以下字符列表按其ASCII值的升序排列。即,具有较小的ASCII值的字符将被首先放置比具有更高的ASCII值的字符。冒泡排序,插入排序,选择排序,合并排序,快速排序,堆排序,基数排序等是排序算法的示例。

排序有两种不同的类别。他们是:

  • 内部排序:当所有数据都放在内存中时,排序称为内部排序。
  • 外部排序:当无法一次将所有需要排序的数据都放置在内存中时,该排序称为“外部排序”。外部排序用于处理大量数据。合并排序及其变体通常用于外部排序。一些外部存储设备(例如硬盘CD等)用于外部存储设备。

搜索和排序算法之间的区别:

S.No. Searching Algorithm Sorting Algorithm
1. Searching Algorithms are designed to retrieve an element from any data structure where it is used. A Sorting Algorithm is used to arranging the data of list or array into some specific order.
2. These algorithms are generally classified into two categories i.e. Sequential Search and Interval Search. There are two different categories in sorting. These are Internal and External Sorting.
3. The worst-case time complexity of searching algorithm is O(N). The worst-case time complexity of many sorting algorithms like Bubble Sort, Insertion Sort, Selection Sort, and Quick Sort is O(N2).
4. There is no stable and unstable searching algorithms. Bubble Sort, Insertion Sort, Merge Sort etc are the stable sorting algorithms whereas Quick Sort, Heap Sort etc are the unstable sorting algorithms.
5. The Linear Search and the Binary Search are the examples of Searching Algorithms. The Bubble Sort, Insertion Sort, Selection Sort, Merge Sort, Quick Sort etc are the examples of Sorting Algorithms.