算法
JoeCSG
这个作者很懒,什么都没留下…
展开
-
编程算法基础-2.6加密与解密
2.6加密与解密密钥:对称式密钥,非对称式迷药 对称式密钥:明文(尚未加密原文)------加密------》密文 这个过程需要一个密钥X去加密 密文-------解密-------》明文 解密过程需要一个密钥X,和加密的是同一个密钥非对称式密钥:通过某算法产生一对钥匙,选一个作为公钥原创 2014-04-26 21:04:56 · 1498 阅读 · 0 评论 -
编程算法基础-2.7作业-通讯编码-格式检查
作业通信编码假设通信的物理设备只能表示1和0两种状态。1和0状态都不能持续太久,否则物理设备会出现故障。因而人们设计出一种变通的方法:多个0后人为地补入一个1多个1后人为地补入一个0当然,在解码的时候,要相应处理。下面我们用串来模拟这个算法。假设有需要通信的串:String s = "101010010010000101111010001010101010000原创 2014-04-27 19:43:21 · 1416 阅读 · 0 评论 -
编程算法基础-3.1自顶向下风格
第三讲 风格与模式3.1自顶向下风格复杂问题分解,直到小问题足够简单,可以掌控为止是一种思考方式把大的任务不断的分解为更小的子任务 另一法宝:忽略,忽略细节 程序问题制定框架---》逐步细化---》逐步精华---》分解为子问题打印特定的形状做一个二维数组的缓冲区向缓冲区输出缓冲区输出屏幕上数组初始元素都是0 表格:横线,竖线。原创 2014-04-27 23:37:15 · 1033 阅读 · 0 评论 -
编程算法基础3.3-测试驱动风格
3.3测试驱动风格严格的说测试驱动风格不是设计风格,它是为了能够保证程序员思路清晰热情持续,我们采用的一种策略。 部队长时间在雪地上行走,会出现雪盲症,战士出现幻觉,像梦游,注意力不集中一般派先前部队在路上在地上撒一些树枝或别的东西解决。 同理,程序员也一样,如果长时间编码缺少反馈,也会使程序员思维钝化,产生幻觉。测试驱动可以使程序员能够把他的任务转变为不断地制造错误和原创 2014-05-18 20:49:16 · 1176 阅读 · 1 评论 -
编程算法基础-2.5正则表达式进阶
2.5正则表达式进阶正则表达式的功能相当强大Java 提供Pattern,Matcher类Pattern:代表正则表达式本身 对正则进行预先编译处理 提高处理的效率Matcher:代表正则匹配的结果 实现更加复杂的管理原创 2014-04-24 17:40:13 · 855 阅读 · 0 评论 -
编程算法基础-2.4正则表达式初步
2.4正则表达式初步现代计算机大多数处理非数值任务所以应当熟悉串的API串的: 搜索 匹配 分隔 替换处理工具:正则表达式regular expression其发展已经相当成熟,几乎可以当做一门独立的语言有一套完整的规则和独立的语法系统 Java内置了对正则的支持 Java串的API中涉及的正则表达式Split正则表达式应用——S原创 2014-04-24 13:03:26 · 850 阅读 · 0 评论 -
编程算法基础-2.2串与数值的转换
2.2串与数值的转换串与整数的转换把任何东西转化为串,只要把它加上一个空串,任何值和串相加,结果都是串。 Integer.parseInt将串转换为整数 有时也采用直接的逻辑方式 串转整数String s = “9527”;/*串转整数String s = "9527";*/ package StringToInteger; public cla原创 2014-04-23 10:39:15 · 1368 阅读 · 0 评论 -
编程算法基础-2.3进制转换
2.3进制转换使用int存一个整数时,内存中是用二进制存储的,当要显示的时候,用十进制显示。任意进制间的转换n进制转m进制String s = “2001201102”3进制转换为5进制 先转换为2进制,再转换为5进制/*任意进制间的转换n进制转m进制String s = “2001201102”3进制转换为5进制 先转换为10进制,再转换为5进制*/原创 2014-04-23 16:54:12 · 1896 阅读 · 2 评论 -
编程算法基础-2.1活用串的API
2.1活用串的API串是Java中最常用的类型,而且是复合类型串十分常用,最好对其API文档熟悉。判断串中有没有重复的字符String s =”abcdebxyz”;判断其中有没有重复字符/*判断串中有没有重复的字符String s ="abcdebxyz";判断其中有没有重复字符*/ package StringAPI; public class JudgeR原创 2014-04-22 21:10:42 · 1387 阅读 · 1 评论 -
编程算法基础-数字数码管-隐藏密码
作业数字数码管数字或字母可以用7位数码管显示(就是排列为8字形的7个数码管) @@@@ 0 @ @ 1 2 @ @ 3 @@@@ 4 5 @ @ 6 @ @原创 2014-04-21 22:09:27 · 2031 阅读 · 0 评论 -
编程算法基础-常数变易法
1.4常数变易法常数变异的思考方法当程序中有许多因素都在变动的时候,我们可以假设其中的某些变数为常数,把他们写成固定的死值。将来再用变量替换。星号金字塔常数变异典型应用 打印这个金字塔: * * * * * * * * * * * *原创 2014-04-21 15:55:47 · 1818 阅读 · 2 评论 -
编程算法基础-假设修正法
1.3假设修正法衡量一个软件的质量的标准是什么?正确性,运行效率,稳定性,可读性(逻辑清晰、简明,甚至有时可以牺牲效率)求最大值求a,b,c三个数中的最大值。/*有a,b,c三个数字,求最大值。*/package AsumeCorrect; public class MaxNumber { public static void main(String[] args原创 2014-04-20 20:35:41 · 1663 阅读 · 0 评论 -
编程算法基础-枚举与剪枝
1.2枚举与剪枝暴力破解虽然简单有效,但是有弱点,考虑的情况很多时,计算机承受不了。人为排除一些不可能的情况。剪枝就是为了让计算机尽量避免无用的徒劳的动作。找零方案要找8元零钱,有零钞:5元,2元,1元,5角求所有找零方案。 5角如果写成浮点型的,在计算相等的时候会产生误差,所以全部扩大十倍,再进行比较。/*要找8元零钱,有零钞:5元,2元,1元,5角求所有找原创 2014-04-20 10:27:01 · 1695 阅读 · 1 评论 -
编程算法基础-一刀切法
1.5一刀切法编程和编筐一样,处理边缘问题同样重要。程序逻辑 开始 中间 结束 一刀切法上式用空格或逗号分隔的串,提取为各个部分abc ttt,kmd,uuu xyz切分成每一部分。/* * "abc ttt,kmd,uuu xyz"用逗号或者空格隔开字符串分解为各个部分*/package One原创 2014-04-21 16:01:48 · 2277 阅读 · 3 评论 -
编程算法基础-暴力破解法
1.1 暴力破解法鸡兔同笼50头,120脚,鸡兔分别几只?/*鸡兔同笼 * 鸡兔同笼,头50,脚120 * 鸡兔几何?*/package ChickRabbit; public class ChickRabbit { public static void main(String[] args){ int chick; int rabb原创 2014-04-20 10:18:54 · 3533 阅读 · 0 评论 -
编程算法基础-3.2自底向上风格
3.2自底向上风格自顶向下不是万能的需求发生变化时,会很尴尬变化是需求的本质特征内部或外界的环境一旦发生小小的变化,就会造成很大的变动 个人---完全掌控-----》简单的软件逻辑《-----完全计划的模式小组协作---掌控变化----》庞大的软件规模---产生--》自适应变化《-----解决-----主流解决方案:面向对象面向对象正是采用自底向上的设计风格打印原创 2014-04-30 11:22:39 · 1207 阅读 · 0 评论