常用的查找算法

线性/顺序查找算法

算法流程

  1. 使用目标元素与样本数列中的元素从前向后依次比较大小;
  2. 若找到与目标元素相等的元素,则表示查找成功;
  3. 若所有元素与目标元素比较完毕也没有相等的元素,则表示查找失败;

二分/折半查找算法

算法流程

  1. 假定样本数列中的所有元素从小到大有序排列;
  2. 使用目标元素与样本数列中的中间元素比较大小,若相等则查找成功;
  3. 若目标元素小于中间元素,则应该去中间元素的左边进行查找;
  4. 若目标元素大于中间元素,则应该去中间元素的右边进行查找;
  5. 直到处理完毕所有元素也没有相等的元素,则表示查找失败;

常见的排序算法

冒泡排序算法

算法流程

  1. 比较相邻位置两个元素的大小,若第一个元素比第二个大则交换两个元素的位置;
  2. 从开始的第一对一直比较到结尾的最后的一对,经过这一步,最后的元素将是这组
    元素的最大值;
  3. 重复步骤b持续对越来越少的元素进行比较,直到处理完毕所有元素为止;
    (任何相邻位置的两个元素都不再需要交换为止)

插入排序算法

算法流程

  1. 取出第一个元素,可以认定该元素已经有序;
  2. 取出下一个元素,让取出的元素与左边的有序数列从右向左依次比较大小;
  3. 若取出的元素小于左边的元素,则将左边的元素右移也就是赋值到下一个元素的位置;
  4. 若取出的元素大于等于左边的元素,则将取出的元素插入到左边元素的右边;
  5. 重复步骤b,直到处理完毕所有元素为止;

选择排序算法

算法流程

  1. 取出第一个元素并假定该元素是这组元素中的最小值使用min记录下标;
  2. 使用min记录的最小值与后续元素依次比较大小;
  3. 若后续元素中出现比min记录的最小值还小的元素,则使用min记录该元素的下标;
  4. 直到min记录的最小值与后续所有元素比较完毕后,交换min记录的最小值和最开始
    假定最小值的元素位置;
  5. 经过这一步,最起始的元素将是这组元素中的最小值,取出下一个元素重复步骤a,
    直到处理完毕所有元素为止;

快速排序算法

算法流程

  1. 选择中间元素作为基准值并单独保存起来;
  2. 分别使用左右两边的元素依次与基准值比较大小,将所有小于基准值的元素放在左边,
    将所有大于等于基准值的元素放在右边,这个过程叫做分组;
  3. 分别对左右两边的分组进行再次分组,使用递归的思想;


10月      Java

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!