本文共 1281 字,大约阅读时间需要 4 分钟。
顺序查找是一种最基础的查找算法,适用于数组或列表中按照顺序查找特定元素的场景。其工作原理是从数组的开头逐个检查每个元素,直到找到与目标值相等的元素为止。如果找到,则结束查找过程;如果完全遍历完数组但未找到目标值,则标记为未找到。
示例:
考虑一个简单的数组 [3, 1, 2, 5, 4]
,目标值为2。顺序查找的过程如下:
如果目标值不存在于数组中,则返回-1或其他表示未找到标志。
折半查找(Binary Search)是一种高效的查找算法,特别适用于已排序数组。其核心思想是通过不断缩小查找范围,从而快速定位目标值。
步骤:
mid
。mid
的大小: mid
,需查找左边的子数组(从 first
到 mid-1
)。mid
,需查找右边的子数组(从 mid+1
到 last
)。示例:
在已排序数组 [1, 2, 3, 4, 5]
中查找目标值5:
first=0
,last=4
,mid=2
,值为3。5>3,转向右边。last=4
,mid=(3+4)/2=3
,值为4。5>4,继续右边。first=4
,此时值为5,找到目标值。如果目标值不存在于数组中,则开始时的数组为空,或者最后一次循环结束时未找到目标值。
###冒泡排序
冒泡排序是一种简单有效的排序算法,其核心在于通过一系列交换操作,将最大值逐步移至数组末尾。
原理:
每趟排序:
过程:
N-1
趟排序,数组将完全排序为有序数组。示例:
对数组 [3, 2, 1]
进行冒泡排序:
第一趟:
[2, 3, 1]
。[2, 1, 3]
。第二趟:
[1, 2, 3]
。完成两趟排序后数组已排序。
选择排序的核心在于每次从未排序区间中选择最小值,将其移动至已排序区间的末尾。
步骤:
i
。示例:
对数组 [4, 3, 1, 2, 5]
进行选择排序:
第一趟:
[4, 3, 2, 1, 5]
。第二趟:
[4, 3, 2, 5, 1]
。第三趟:
[4, 3, 5, 1, 2]
。第四趟:
需要 N-1
趟排序后数组即为有序。
转载地址:http://etfez.baihongyu.com/