随笔分类 - Algorithm
摘要:开放-关闭原则设计原则:类应该对扩展开放,对修改关闭我们的目标是允许类容易扩展,在不修改现有代码的情况下,就可以搭配新的行为,如能实现这样的目标,有什么好处呢?这样的设计具有弹性,可以应对改变,可以接受新的功能来应对改变的需求。装饰者模式:动态的将责任添加到对象上,若要扩展功能,装饰者提供了比继承更有弹性替代方案。补充设计模式原则:1. 封装变化2. 面向接口编程,而不是面向实现3. 多用组合,少用继承4. 类应该对扩展开放,对修改关闭5. 为交互对象之间的松耦合设计而努力
阅读全文
摘要: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...
阅读全文
摘要:算法题:设计函数实现将中文数字转换成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...
阅读全文
摘要:冒泡排序-时间复杂度为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
阅读全文