二分搜索算法和分治算法的简单实例
2017-05-21 15:36
357 查看
/** * Created by Leon on 2017/4/4. * 二分搜索算法 */ public class Binary_Search { public static void main(String[] args) { int srcArray[]={3,5,11,17,21,23,28,30,32,50,64,78,81,95,101}; System.out.println(binSearch(srcArray,0,srcArray.length-1,81)); System.out.println(binSearch(srcArray,81)); } /**二分查找递归实现 * start起始下标,end结尾下标,key待查找数据 */ public static int binSearch(int srcArray[],int start,int end,int key) { int mid=(end-start)/2+start;//中间下标 if(srcArray[mid]==key) { return mid; } if (start>=end) { return -1; }else if(key>srcArray[mid]) { return binSearch(srcArray,mid+1,end,key); }else if (key<srcArray[mid]) { return binSearch(srcArray,start,mid-1,key); } return -1; } /**二分查找普通循环实现 * start起始下标,end结尾下标,key待查找数据 */ public static int binSearch(int srcArray[],int key) { int mid=srcArray.length/2; if (key==srcArray[mid]) { return mid; } int start=0; int end=srcArray.length-1; while (start<=end) { mid=(end-start)/2+start; if (key<srcArray[mid]) { end=mid-1; }else if (key>srcArray[mid]) { start=mid+1; }else { return mid; } } return -1; } }
/** * Created by Leon on 2017/4/4. * 分治算法 * 计算乘方 */ public class Divide_Conquer { public static int power(int x,int n) { int result; if(n == 1) return x; if( n % 2 == 0) result = power(x, n/2) * power(x, n / 2); else result = power(x, (n+1) / 2) * power(x, (n-1) / 2); return result; } public static void main(String[] args) { int x = 5; int n = 3; System.out.println("power("+x+","+n+") =" +power(5,3)); } }
相关文章推荐
- 分治算法——入门简单实例
- c语言的二分查找简单实例
- C语言编程中实现二分查找的简单入门实例
- Java分治法与二分搜索算法实例分析
- 分治算法---二分搜索算法
- js基本算法:冒泡排序,二分查找的简单实例
- 快速上手XDoclet 1 -- Servlet简单实例(转)
- RMI、CORBA、IIOP简单实例--1. RMI
- 一个简单在jsp页面中连接sqlserver数据库的小实例
- 史上最简单的struts+spring+hibernate配置实例
- [WEB开发] 基于XMLHTTP的简单实例
- 一些C#的简单实例
- 2. 一个简单的Servlet--产生存文本下面是一个产生存文本的简单servlet的实例
- Linux C实现MySql数据库操作简单实例
- Struts简单实例
- C#调用oracle存储过程 最简单的实例
- html搜索xml的简单实例
- J2ME应用实例——一个简单的计算器实现(附源代码)
- RMI、CORBA、IIOP简单实例--1. RMI
- 快速上手XDoclet 1 -- Servlet简单实例