- 博客(6)
- 资源 (4)
- 收藏
- 关注
原创 算法学习——堆排序
堆排序就是将要排序的对象构造为一个有序的大顶堆或小顶堆(根据需要来定,升序排序构造大顶堆,降序排序构造小顶堆),之后每次将堆顶选出后剩下的节点元素再次进行排序,直到剩下最后一个节点元素为止,此时排序结束。package pp.suanfa;/** * 堆排序 * @author xiaoGd * */public class HeapSort { public sta...
2018-10-14 21:58:04 968 2
原创 算法学习——希尔排序
希尔排序的思想就是将排序对象分为步长序列进行插入排序,步长序列的增量是递减的,那么什么是步长序列呢?简单的说就是将一个大的序列按照固定的增量分为若干个小的序列,当数字作为序列的下标时,1,3,5,7,9就是一个步长序列,仔细考虑考虑不难理解,若一个长度为10的序列,将其按照增量为5来分段,此时要进行插入排序的分别是下标为0和5,1和6,2和7,3和8,4和9的元素,话不多说,咱们直接来看代码:...
2018-10-12 20:43:34 405
原创 算法学习——快速排序
看过了冒泡排序和选择排序,昨天看了快速排序,对于其中的位置互换理解的有点混乱,直到今天才弄明白是怎么一回事。过程大概了解了,利用了分治的思想,如果要对一个数组进行排序,先取数组中的一个数作为基准数,遍历数组,将数组中大于该基准数的数放在右边,小于该基准数的数放在左边,这样就将较小的数和较大的数分成了两个部分,基准数是最后确定位置的,并不是像插入排序一样先确定基准数的位置,然后再将其它数进行排序。...
2018-10-06 09:48:33 153
原创 使用二进制和位移运算实现简单的算法
1.将一个二进制数向左位移n位就等于该数乘以2的n次方,当乘法运算中的某个数符合这个特点的时候,可以用位移运算代替乘法运算,从而提高效率。package pp.suanfa;/** * 乘法运算转位移运算 * * @author xiaoGd * */public class MulAndShift { public static int isPower(int m...
2018-10-02 09:58:35 1552
原创 算法学习——归并排序
归并排序看起来比较难,代码量也比之前几个排序多,研究归并排序也确实用了挺长时间。归并排序中的“归”是递归的意思,“并”是合并的意思,顾名思义,归并就是先递归分开,再合起来,那么归并排序的思想就是将一个数据序列递归划分为越来越小的半子表,再对半子表进行排序,最后再用递归的方法将排好序的半子表合并成为越来越大的有序序列,这也是分治思想在归并排序中的体现。归并排序算法的原理就是对于给定的一组记录...
2018-10-01 18:20:06 320
原创 对SpringMVC、Struts2、Hibernate以及Mybatis工作原理的初步理解
一、看了对SpringMVC原理的介绍,我画了一张图:按图中序号依次向下进行:1.用户发送请求到前端控制器DispatcherServlet2.DispatcherServlet收到请求调用处理器映射器HandlerMapping3.HandlerMapping找到具体的处理器,生成处理器对象以及处理器拦截器(如果有则生成),一并将其返回给DispatcherServlet(图...
2018-10-01 14:10:39 1857
JavaScript版 数据结构与算法
2019-05-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人