面试常用代码
2018-04-01 11:50
351 查看
1、单例模式——懒汉式class LazySingleton { private static LazySingleton singleton; private LazySingleton() { } public static LazySingleton getInstance() { if (singleton == null) { singleton = new LazySingleton(); } return singleton; } }
2、单例模式——恶汉式class HungrySingleton { private static HungrySingleton singleton = new HungrySingleton(); private HungrySingleton() { } public static HungrySingleton getInstance() { return singleton; } }
3、冒泡排序public static void bubbleSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { boolean flag = true;// 设定一个标记,若为true,则表示此次循环没有进行交换,也就是待排序列已经有序,排序已然完成。 for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { swap(arr, j, j + 1); flag = false; } } if (flag) { break; } } }
4、二叉树这块代码方面都是比较类似的就索性附上链接了!https://blog.csdn.net/android_heng/article/details/76599302
5、递归代码public int climbStairs(int n) { int i = 1; if (n <= 0) return 0; if (n == 1) { return i; } if (n == 2) { i++; return i; } else return climbStairs(n - 1) + climbStairs(n - 2); }
测试方法:public static void main(String[] args) { ClimbStairs cs = new ClimbStairs(); int a = cs.climbStairs(4); System.out.println(a); }
6、快速排序 // 三数取中 // 下面的两步保证了array[hi]是最大的; int mid=lo+(hi-lo)/2;if(array[mid]>array[hi]) { swap(array[mid], array[hi]); }if(array[lo]>array[hi]) { swap(array[lo], array[hi]); } // 接下来只用比较array[lo]和array[mid],让较小的在array[lo]位置就OK。 if(array[mid]>array[lo]) { swap(array[mid], array[lo]); } int key = array[lo];
2、单例模式——恶汉式class HungrySingleton { private static HungrySingleton singleton = new HungrySingleton(); private HungrySingleton() { } public static HungrySingleton getInstance() { return singleton; } }
3、冒泡排序public static void bubbleSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { boolean flag = true;// 设定一个标记,若为true,则表示此次循环没有进行交换,也就是待排序列已经有序,排序已然完成。 for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { swap(arr, j, j + 1); flag = false; } } if (flag) { break; } } }
4、二叉树这块代码方面都是比较类似的就索性附上链接了!https://blog.csdn.net/android_heng/article/details/76599302
5、递归代码public int climbStairs(int n) { int i = 1; if (n <= 0) return 0; if (n == 1) { return i; } if (n == 2) { i++; return i; } else return climbStairs(n - 1) + climbStairs(n - 2); }
测试方法:public static void main(String[] args) { ClimbStairs cs = new ClimbStairs(); int a = cs.climbStairs(4); System.out.println(a); }
6、快速排序 // 三数取中 // 下面的两步保证了array[hi]是最大的; int mid=lo+(hi-lo)/2;if(array[mid]>array[hi]) { swap(array[mid], array[hi]); }if(array[lo]>array[hi]) { swap(array[lo], array[hi]); } // 接下来只用比较array[lo]和array[mid],让较小的在array[lo]位置就OK。 if(array[mid]>array[lo]) { swap(array[mid], array[lo]); } int key = array[lo];
相关文章推荐