随笔分类 -  Algorithm

摘要:开放-关闭原则设计原则:类应该对扩展开放,对修改关闭我们的目标是允许类容易扩展,在不修改现有代码的情况下,就可以搭配新的行为,如能实现这样的目标,有什么好处呢?这样的设计具有弹性,可以应对改变,可以接受新的功能来应对改变的需求。装饰者模式:动态的将责任添加到对象上,若要扩展功能,装饰者提供了比继承更有弹性替代方案。补充设计模式原则:1. 封装变化2. 面向接口编程,而不是面向实现3. 多用组合,少用继承4. 类应该对扩展开放,对修改关闭5. 为交互对象之间的松耦合设计而努力 阅读全文
posted @ 2013-03-10 21:42 我是小菜鸟 阅读(236) 评论(0) 推荐(0) 编辑
摘要:package com.test;import java.util.*;public class BinaryQuery { public static void main(String[] args) { int[] arr = {1, 3, 5, 6, 7, 12, 13, 15, 23, 676}; System.out.println("Query result is: " + bQuery(arr, 15)); } public static int bQuery(int[] arr, int n... 阅读全文
posted @ 2012-06-29 18:47 我是小菜鸟 阅读(133) 评论(0) 推荐(0) 编辑
摘要:算法题:设计函数实现将中文数字转换成int型数字,例如”一百二十三” 转换成123,要求写出测试用例。package com.test; import java.util.*; public class CNCharsToNumber { public static void main(String[] args) { System.out.println("Test: " + CNCharsToNumber.CnToNumber("一十亿零五百万八千零二十三")); } public static int CnToNumber(S... 阅读全文
posted @ 2012-06-28 23:15 我是小菜鸟 阅读(732) 评论(0) 推荐(0) 编辑
摘要:冒泡排序-时间复杂度为O(N^2)-稳定排序:var a = [49 ,38, 65 ,97 ,76 ,13 ,27, 49];var length = a.length;var temp;for(var i = 0; i < a.length; i++) { for(var j = 0; j < a.length - i; j++) { if(a[j] > a[j + 1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } }}console.log(a.join(" "));选择排序-时间复杂度为O 阅读全文
posted @ 2012-06-16 16:25 我是小菜鸟 阅读(260) 评论(0) 推荐(0) 编辑