返回顶部

收藏

线性查找和折半查找的Java实现

更多
package com.gemini.search;

public class Search {

    /**
     * Search the specified array of objects using a linear search<br>
     * algorithm
     * @param data
     * @param target
     * @return boolean found
     */
    public static boolean linearSearch(Comparable[] data, Comparable target) {
        int index = 0;
        boolean found = false;

        while (!found && index <= data.length) {
            if (data[index].compareTo(target) == 0) {
                found = true;
            }
            index++;
        }
        return found;
    }

    /**
     * Search the specified array of objects using a binary search<br>
     * algorithm
     * @param data
     * @param min
     * @param max
     * @param target
     * @return boolean found
     */
    public static boolean binarySearch(Comparable[] data, int min, int max,
            Comparable target) {
        boolean found = false;
        int midpoint = (min + max) / 2; // determine the midpoint

        if (data[midpoint].compareTo(target) == 0) {
            found = true;
        } else if (data[midpoint].compareTo(target) > 0) {
            if (min <= midpoint - 1) {
                found = binarySearch(data, min, midpoint - 1, target);
            }
        } else if (midpoint + 1 <= max) {
            found = binarySearch(data, midpoint + 1, max, target);
        }
        return found;
    }
}
//该片段来自于http://outofmemory.cn

标签:java,算法

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. admin 发表 2013-11-25 02:54:22 插入排序代码举例
  2. 赵 伊凡 发表 2016-10-29 08:08:06 Java中生成随机数Random、ThreadLocalRandom、SecureRandom
  3. Normal 发表 2015-04-28 15:20:50 一道算法题
  4. 博主 发表 2013-01-23 07:22:22 快速排序算法——引自java编程思想
  5. admin 发表 2013-11-25 03:10:45 归并排序代码举例
  6. 赵 伊凡 发表 2016-10-29 08:08:06 Java中生成随机数Random、ThreadLocalRandom、SecureRandom
  7. root 发表 2015-04-18 09:26:01 Java 容器 & 泛型:四、Colletions.sort 和 Arrays.sort 的算法
  8. admin 发表 2013-11-25 08:14:29 堆排序代码举例
  9. neo 发表 2016-07-27 15:01:15 大塞车游戏活动的算法解
  10. Eric 发表 2015-10-01 01:56:30 Java程序员必知的8大排序算法
  11. bystander 发表 2013-06-29 10:14:08 等物体填充问题
  12. 博主 发表 2016-08-19 04:16:14 RSA 加密解密算法 Java 实现

发表评论