跳到主要内容

十五:常用查找算法介绍,线性排序、二分查找(折半查找)算法、差值查找算法、斐波那契(黄金分割法)查找算法

前言

一、常用查找算法

在java中,我们常用的查找有四种:

1、 顺序(线性)查找;
2、 二分查找/折半查找;
3、 插值查找;
4、 斐波那契查找【比较难】;

二、顺序(线性)查找算法

2.1 问题描述

有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值。

2.2 代码实现

package com.feng.ch10_search;

/*
* 线性查找
* 1、没有顺序的数组
* 2、 直接循环遍历、比较
* */
public class S1_SeqSearch {



public static void main(String[] args) {


int array[] = {

1, 9, 11, -1, 34, 89}; // 没有顺序的数组
int i = seqSearch(array, 11);
if (-1 == i) {


System.out.println("没有找到");
} else {


System.out.println("找到,下标为=" + i);
}
}

/*
* 这里我们实现的线性查找是找到一个满足条件的值,就返回
* @param array
* @param num
* @return
* */
public static int seqSearch(int[] array, int num) {



for (int i = 0; i < array.length; i++) {


if (num == array[i]) {


return i;
}
}
return -1;
}
}