常见排序算法-----快速排序

摘要: 最好时间复杂度O(nlogn) 最坏时间复杂度O(N^2) 方法一: 左右指针法: 当基点设置在最左端时,要让右指针先移动(当基准设置在最右端时,要让左指针先移动) S1 右指针移动找到第一个比基准小的数停止. S2 左指针开始移动,找到第一个比基准大的数停止 S3 将左右指针所指的数进行交换 S4 阅读全文
posted @ 2018-07-23 16:02 Mxxxx 阅读(137) 评论(0) 推荐(0) 编辑

求 能把1~n所有整数整除的最小的数

摘要: 即求出1~n的最小公倍数 S1 先求出1~n中所有的质数 用一个boolean类型的数组表示,下标代表1~n S2 对1~n中所有的数进行质因数分解,找出每一个质数所对应的最大次幂 S3 将质数与对应的次幂相乘即为 最小公倍数。 阅读全文
posted @ 2018-07-22 14:13 Mxxxx 阅读(324) 评论(0) 推荐(0) 编辑

内部类

摘要: https://www.cnblogs.com/dolphin0520/p/3811445.html 阅读全文
posted @ 2018-07-21 21:44 Mxxxx 阅读(83) 评论(0) 推荐(0) 编辑

常见排序算法-----归并排序

摘要: 先拆分 拆分到最底层后 在排序合并 稳定算法 归并排序的最好,最坏,平均时间复杂度均为O(nlogn)。 详见 https://www.cnblogs.com/chengxiao/p/6194356.html 阅读全文
posted @ 2018-07-21 16:26 Mxxxx 阅读(118) 评论(0) 推荐(0) 编辑

常见排序算法-----堆排序

摘要: 堆排序是一种不稳定排序,其中构建初始堆经推导复杂度为O(n),在交换并重建堆的过程中,需交换n-1次,而重建堆的过程中,根据完全二叉树的性质,[log2(n-1),log2(n-2)...1]逐步递减,近似为nlogn 详情 http://www.cnblogs.com/chengxiao/p/61 阅读全文
posted @ 2018-07-21 14:38 Mxxxx 阅读(119) 评论(0) 推荐(0) 编辑

深度优先搜索和广度优先搜索

摘要: 广度优先搜索: 策略: 从起点开始遍历其相邻接的节点,由此向外不断扩散 (使用队列) 深度优先遍历 策略是: 从一个顶点v出发,首先将v标记为已遍历的顶点,然后选择一个邻接于v的尚未遍历的顶点u,如果u不存在,本次搜素终止。如果u存在,那么从u又开始一次DFS。如此循环直到不存在这样的顶点。(使用栈 阅读全文
posted @ 2018-07-21 12:37 Mxxxx 阅读(117) 评论(0) 推荐(0) 编辑

剑指offer整理-------二维数组查找

摘要: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 阅读全文
posted @ 2018-07-21 10:12 Mxxxx 阅读(139) 评论(0) 推荐(0) 编辑

常见排序算法-----希尔排序

摘要: 时间复杂度为O(n^3/2) 希尔排序不是一个稳定性排序 阅读全文
posted @ 2018-07-20 21:29 Mxxxx 阅读(150) 评论(0) 推荐(0) 编辑

log4j日志不能输出到文件

摘要: https://blog.csdn.net/x6582026/article/details/52179817 阅读全文
posted @ 2018-07-19 08:44 Mxxxx 阅读(711) 评论(0) 推荐(0) 编辑

常见排序算法-----直接插入排序

摘要: public void straightInsertionSort(int[] arr) { for (int i = 1; i temp && j > 0; j--) { arr[j + 1] = arr[j]; } arr[j + 1] = temp; ... 阅读全文
posted @ 2018-07-18 20:01 Mxxxx 阅读(114) 评论(0) 推荐(0) 编辑