经典算法分析
来源:互联网 发布:栅格数据 查找工具 编辑:程序博客网 时间:2024/05/16 18:29
1折半查找。,当给出的数组绝对有序时,可以使用折半查找的办法,可以将时间复杂度降低到logN级别。
package sort;
public class HalfSort {
public static <AnyType extends Comparable<?super AnyType>> int binarySearch(
AnyType[] a, AnyType x) {
//定义两个游标,分别指向数组的开头和结尾
int low = 0, high = a.length - 1;
while (low <= high) {
//找到中间的元素
int mid = (low + high) / 2;
//如果中间的那个元素小于比较的值,则从中间值的下一个到最后开始找
if (a[mid].compareTo(x) < 0) {
low = mid + 1;
} else if (a[mid].compareTo(x) > 0) {
high = mid - 1;
} else {
return mid;
}
}
return -1;
}
}
欧几里算法:
欧几里算法主要用来计算两个整数的最大公因式。。
public class GCD {
public static long gcd(long m,long n) {
while (n != 0) {
long rem = m %n;
m = n;
n = rem;
}
return m;
}
}
幂运算的解决办法。
计算X^N幂运算的思路是利用递归,将N<=1作为递归的基准情况,否则,如果N是偶数,我们有X^N=X^N/2* X^N/2,如果N是奇数,则X^N=X^(N-1)/2* X^(N-1)/2,所需要的乘法次数最多是2LogN
package sort;
public class POW {
public static long pow(long x,int n){
if(n==0){
return 1;
}
if(n==1){
return x;
}
//如果是偶数
if(isEven(n)){
//调用递归算法
returnpow(x*x,n/2);
}else{
//如果是奇数
returnpow(x*x,n/2)*x;
}
}
}
- 经典算法分析
- 经典排序算法分析
- 一些经典排序算法分析
- 经典排序算法--归并排序算法分析
- 经典排序算法分析和代码-上篇
- 经典排序算法分析和代码-中篇
- 经典排序算法分析和代码-下篇
- 经典排序算法实验复杂性分析
- 经典排序算法分析及其Java实现
- 【算法】递归(recursion)+经典例题个人分析
- 算法设计与分析绪论学习-几个经典算法
- 算法分析经典数据,让你轻松KO算法!
- 【算法设计与分析】经典代码赏析【1】
- 一道100年后羊圈羊的数量经典算法分析
- 经典算法归并排序的分析及PHP实现
- Java实现经典排序算法及复杂度稳定性分析
- JAVA的六大经典算法,代码案例简化分析
- 经典排序算法的详细分析及C++实现代码
- QTP11在IE9下录制无脚本
- android动画(2)自定义动画
- 矩阵的排序
- Reactor模式,或者叫反应器模式
- 数据结构之二叉树——相关问题总结
- 经典算法分析
- XML解析代码课堂讲解实例
- mvc js获取页面model里的值
- 概率和统计相关指令
- android 之系统本地获悉系统联系人
- POJ 3348 || Cows(求凸包面积
- C++随机数与hadoop stream 排序
- Android 中content的使用
- 最大子序列和问题