如是我闻:排序,搜索和给变量起名真是计算机科学的基础。下面是对常见的排序和搜索算法的简要总结:
排序算法 (Sorting Algorithms)
-
冒泡排序 (Bubble Sort)
- 简介:通过重复交换相邻元素,如果它们的顺序错误,就进行交换,这样较大的元素会逐渐“冒泡”到列表的末端。
- 时间复杂度:平均和最差情况下是 O(n^2),最佳情况是 O(n)。
-
选择排序 (Selection Sort)
- 简介:每次从未排序的部分选择最小的元素,然后将它与未排序部分的第一个元素交换位置。
- 时间复杂度:平均、最佳和最差情况下均是 O(n^2)。
-
插入排序 (Insertion Sort)
- 简介:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
- 时间复杂度:平均和最差情况下是 O(n^2),最佳情况是 O(n)。
-
归并排序 (Merge Sort)
- 简介:采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列。
- 时间复杂度:所有情况下均为 O(n log n)。
-
快速排序 (Quick Sort)
- 简介:同样采用分治法,通过选择一个“基准”元素,然后把数组分为两部分,左边都是小于基准的元素,右边都是大于基准的元素,然后递归地对这两部分继续进行快速排序。
- 时间复杂度:平均情况是 O(n log n),最差情况是 O(n^2),但实际上非常快。
搜索算法 (Search Algorithms)
-
线性搜索 (Linear Search)
- 简介:按顺序检查每个元素,直到找到所需的元素或搜索完全部元素。
- 时间复杂度:O(n)。
-
二分搜索 (Binary Search)
- 简介:在已排序的数组中,从中间开始搜索,如果中间的元素不是目标值,则在数组较大或较小的半部分中继续搜索。
- 时间复杂度:O(log n)。
非常的有品
以上