JAVA中的细节-算法篇(2)
2007-07-24 10:20
176 查看
我们再来看下一个例子,是一个将数值类型转换为其二进制的算法.
fori(int i=31;i<=0;i++)//如果要测试的数为long,i的初始值便为32.
...{
if(((i<<i)&x)!=0)
System.out.print(0);
else
System.out.print(1);
}
很简单的一段代码,因为作者没有看过JAVA的源代码,所以只对上面的代码做一些介绍.转进制的方法大家都了解,以Integer为例:static String toBinaryString(int value).它是将给定的value转化为其二进制并以String类型返回的,当然我们上面的代码只要稍做修改也能做到.还是要谈到位运算,因为它和其他运算比起来是最快的.这只是个例子,就算这个算法没有JAVA中的toBinaryString()方法高效,但是也不会慢多少,但是如果你在某个特定场合需要自己编写转换函数的化,位运算是首选.
这篇文章只是想提高大家对算法的重视,因为速度永远是计算机比较的重要,我们既然要写代码,就要让其尽量的高效,尤其是JAVA程序员,不要放过任何一段可以提高解释速度的的代码(即算法).这是工作态度问题,当你想到能比详细设计中写到的算法更高效的代码的时候,你应该提出你的想法.如果把代码比做人生,算法就是一种行为思想,在我们明确自己应该做什么的时候,不要盲目的去做,在这个过程中,更应该想想如何做的更好.不要错过任何能使我们变的更优秀的机会.因为世界的代码,由你来编写.
fori(int i=31;i<=0;i++)//如果要测试的数为long,i的初始值便为32.
...{
if(((i<<i)&x)!=0)
System.out.print(0);
else
System.out.print(1);
}
很简单的一段代码,因为作者没有看过JAVA的源代码,所以只对上面的代码做一些介绍.转进制的方法大家都了解,以Integer为例:static String toBinaryString(int value).它是将给定的value转化为其二进制并以String类型返回的,当然我们上面的代码只要稍做修改也能做到.还是要谈到位运算,因为它和其他运算比起来是最快的.这只是个例子,就算这个算法没有JAVA中的toBinaryString()方法高效,但是也不会慢多少,但是如果你在某个特定场合需要自己编写转换函数的化,位运算是首选.
这篇文章只是想提高大家对算法的重视,因为速度永远是计算机比较的重要,我们既然要写代码,就要让其尽量的高效,尤其是JAVA程序员,不要放过任何一段可以提高解释速度的的代码(即算法).这是工作态度问题,当你想到能比详细设计中写到的算法更高效的代码的时候,你应该提出你的想法.如果把代码比做人生,算法就是一种行为思想,在我们明确自己应该做什么的时候,不要盲目的去做,在这个过程中,更应该想想如何做的更好.不要错过任何能使我们变的更优秀的机会.因为世界的代码,由你来编写.
相关文章推荐
- RSA 算法细节|安全性考虑|Java应用
- JAVA中的细节-算法篇(1)
- 算法细节系列(1):Java swap
- java经典算法_016猴子吃桃问题(递归)
- 【LeetCode-面试算法经典-Java实现】【059-Spiral Matrix II(螺旋矩阵II)】
- Java 非阻塞算法详解
- java学习细节(与C/C++对比):(二)
- JAVA字典生成算法
- java中关于try、catch、finally中的细节分析
- java并发之非阻塞算法介绍
- 常见图算法总结与Java实现
- java大数算法完成五则运算之类基础
- [Java 泥水匠] Java Components 之二:算法篇之项目实践中的位运算符(有你不懂的哦)
- 【算法拾遗(java描写叙述)】--- 选择排序(直接选择排序、堆排序)
- java笔试算法题及答案
- Google Map 编码折线算法Java实现
- 【Java】编程细节与技巧
- 八字易经算法之用JAVA实现排大运
- 算法java实现--分支限界法--电路板排线问题
- 矩阵相乘算法的Java语言实现