Java程序语言 顺序查找、二分查找
2012-08-28 20:03
330 查看
public class LinearSearch { /** * 顺序查找方法 * @param arr 数组 * @param val 所需要查找的值 * @return 返回查找值的下标 */ public static int linearSearch(int arr[], int val){ for(int i = 0; i < arr.length; i++){ if(val == arr[i]) return i; } return - 1; } public static void main(String[] args){ int []arr = {1, 4, 4, 2, 5, -3, 6, 2}; int index = linearSearch(arr, 5); System.out.println("你所查找的值的下标: " + index); } }
/** * Java 二分查找 * @author wwj * 要求:数组已经排好序 * 效率:较高 */ public class BinarySearch { /** * 二分查找方法 * @param leftIndex 最左边的下标 * @param rightIndex 最右边的下标 * @param val 查找的值 * @param arr 数组 */ public void binaryFind(int leftIndex, int rightIndex, int val, int arr[]){ int midIndex = (leftIndex + rightIndex) / 2; int midVal = arr[midIndex]; if(rightIndex >= leftIndex){ // 如果所查找的值小于中间值,则在左边的有序表中中查找 if(val < midVal){ // 递归 binaryFind(leftIndex, midIndex - 1, val, arr); } // 如果所查找的值大于中间值,则在右边的有序表中查找 else if(val > midVal){ binaryFind(midIndex + 1, rightIndex, val, arr); } else if(val == midVal){ System.out.println("恭喜你,查找到下标" + midIndex); } } } public static void main(String[] args){ int arr[]= {1, 2, 5, 7 , 12}; BinarySearch bf = new BinarySearch(); bf.binaryFind(0, arr.length - 1, 0, arr); } }
相关文章推荐
- Java程序语言 顺序查找、二分查找
- 算法入门---java语言实现的二分查找小结
- 二分查找java语言实现
- java实现顺序查找、二分查找、哈希表查找、二叉排序树查找
- JAVA入门.零基础学Java语言 MOOC 第二 第三 第四周 比较 判断 分支 循环 —————— 程序控制结构(顺序,分支,循环)
- java实现顺序,二分,分块查找
- 黑马程序员——Java基础查找算法:顺序查找和二分查找
- 顺序查找的java、python、go语言的实现
- java语言实现二分查找数据法
- Java 语言实现折半查找(二分查找)
- 顺序查找及二分查找--Java
- 用java实现的一些插入(顺序和乱序)和查找(顺序和二分)
- Java必知必会查找算法:顺序查找、二分查找
- java程序中的运行顺序
- Java基础第一阶段——05_Java语言基础_数组操作&排序&查找
- 查找算法集:顺序查找、二分查找、插值查找、动态查找(数组实现、链表实现)
- 【Java】数组二分查找元素
- php二分查找、顺序查找算法
- 二分查找的Java实现
- Java语言程序设计-Eclipse入门之Applet程序