算法相关
文章平均质量分 57
lubiaopan
天行健,君子以自强不息;地势坤,君子以厚德载物!
展开
-
输出菱形
public class TestNULL{ public static void main(String args[]){ for(int i=1;i for(int k=1;k System.out.print(" "); } for(int j=1;j System.out.print("*"); } System.out.println(); }原创 2009-11-19 14:03:00 · 948 阅读 · 0 评论 -
java实现循环左移和右移的简单算法
byte a=112,用程序实现,将其循环左移三位和右移三位。112的二进制原码:0111 0000112循环左移3位后的二进制码:1000 0011112循环右移3位后的二进制码:0000 1110 先将循环左移的程序代码告诉大家:public class TestCircle{ public static void main(String args[]){ byte原创 2009-11-17 21:08:00 · 16056 阅读 · 4 评论 -
递归算法和非递归算法的difference和转换
递归算法和非递归算法的difference和转换递归算法实际上是一种分而治之的方法,它把复杂问题分解为简单问题来求解。对于某些复杂问题(例如 hanio塔问题),递归算法是一种自然且合乎逻辑的解决问题的方式,但是递归算法的执行效率通常比较差。因此 ,在求解某些问题时,常采用递归算法来分析问题,用非递归算法来求解问题;另外,有些程序设计语言不支持 递归,这就需要把递归算法转换为非递归算法。转载 2009-11-23 17:39:00 · 923 阅读 · 0 评论 -
慎用++运算符,java和C++中的一个对比
一、先看下面的代码int main(){ int i=3,j,k; j=(i++)*(i++); k=(++i)*(++i); cout}在学习C++的时候我专门记过此程序的运行过程,j的结果应该是3*3=9,k的结果应该是7*7=49,i最终的值应该是7。 二、再看下面的代码public class TestPlusPlus{ public static原创 2009-11-24 16:11:00 · 1331 阅读 · 1 评论 -
递归算法相关总结
相信大部分人都知道,递归算法具有容易理解、结构清晰等优点,但是和非递归方法相比无论是空间需求还是时间需求一般来说都更高。其原因为:递归方法在运行时需要较多次数的函数调用,如果调用层数比较深,需要增加额外的堆栈处理,造成较大的空间需求;又参数传递时需要压栈等操作,造成时间需求比较高。 问题的提出:1、递归算法有没有对递归层次的限制?2、递归算法一定比非递归算法慢吗?究竟该选原创 2009-11-23 17:32:00 · 1891 阅读 · 0 评论 -
求a的n次方的两种算法对比
一、算法一:递推相乘法示例:public class TestN{ public static void main(String args[]){ System.out.println(f(2,4)); } private static long f(int a,int n){ long result=1; for(int i=0;i result=result*a; }原创 2009-11-25 09:04:00 · 5155 阅读 · 1 评论 -
三种方法实现求两个数的最大公约数
方法一/最简单的算法(效率最低),如下: public static int getMaxDivisor(int a, int b) { int max = 0; int temp = Math.min(a, b); for (int i = temp; i > 0; i--) { if (a % i == 0 && b % i == 0) {原创 2009-11-23 17:40:00 · 1809 阅读 · 1 评论