最近在负责部门的Java工程师招聘,面试了一个星期,感觉2-3年工作经验的工程师普遍有个特点,基础知识不扎实,主流框架知识停留在应用的阶段,掌握的不够深入,当然,也有可能是高水平的不屑于来我们公司面试,我所说的不能代表整个行业,只是对本周面试工作的一点感想。同时,自己在面试的时候也在琢磨,面试别人需要问些什么,Java开发应该掌握些什么呢?所以现在自己也准备对一些知识点做一下反思和总结。
1.冒泡排序
public static void bubbleSort(int[] a) { for (int i = 0; i < a.length - 1; i++) for (int j = i + 1; j < a.length; j++) if (a[i] > a[j]) { int x = a[i]; a[i] = a[j]; a[j] = x; } } // 冒泡升级版 public static void cocktailSort(int[] a) { int left = 0; int right = a.length - 1; while (left < right) { for (int i = left; i < right; i++) { if (a[i] > a[i + 1]) { int x = a[i]; a[i] = a[i + 1]; a[i + 1] = x; } } right--; for (int i = right; i > left; i--) { if (a[i - 1] > a[i]) { int x = a[i]; a[i] = a[i - 1]; a[i - 1] = x; } } left++; } }2.插入排序
public static int[] insertSort(int[] a) { if (a != null && a.length > 0) { for (int i = 1; i < a.length; i++) { if(a[i] < a[i-1]){ int x = a[i]; a[i] = a[i-1]; int j= i-2; while(j >= 0 && x < a[j]){ a[j+1] = a[j]; j--; } a[j+1] = x; } } } } // 插入升级版 public static void insertSortDichotomy(int[] a) { for (int i = 1; i < a.length; i++) { int get = a[i]; int left = 0; int right = i - 1; while (left <= right) { int mid = (left + right) / 2; if (a[mid] > get) right = mid - 1; else left = mid + 1; } for (int j = i - 1; j >= left; j--) { a[j + 1] = a[j]; } a[left] = get; } } // 插入排序-希尔排序 public static void ShellSort(int[] a) { int h = 0; while (h <= a.length) { h = 3 * h + 1; } while (h >= 1) { for (int i = h; i < a.length; i++) { int j = i - h; int get = a[i]; while (j >= 0 && a[j] > get) { a[j + h] = a[j]; j = j - h; } a[j + h] = get; } h = (h - 1) / 3; } }3.选择排序
public static int[] selectSort(int[] a) { if (a != null && a.length > 0) { int min = 0; for (int i = 0; i < a.length-1; i++) { min = i; for (int j= i+1; j< a.length; j++) { if (a[min] > a[j]) min = j; } if (min != i) { int x = a[min]; a[min] = a[i]; a[i] = x; } } } }未完待续
【总监】十二春秋之,3483099@qq.com; 【Master】zelo,616701261@qq.com;【运营】运维艄公,897221533@qq.com; 【产品设计】流浪猫,364994559@qq.com;【体验设计】兜兜,2435632247@qq.com; 【iOS】淘码小工,492395860@qq.com;iMcG33K,imcg33k@gmail.com; 【Android】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com; 【Java】首席工程师MR_W,feixue300@qq.com;【测试】土镜问道,847071279@qq.com; 【数据】fox009521,42151960@qq.com;【安全】保密,你懂的。