摘要:
共有4种方式: 1、singleton(默认,单例模式) 2、prototype(需要时创建,没有单例工厂的支持) 3、request(spring web支持时可以用) 4、session(spring web支持时可以用) 阅读全文
posted @ 2017-08-12 22:18
Mike-Shen
阅读(60)
评论(0)
推荐(0)
摘要:
插入排序是排序算法中的基础算法 思路:从第2个元素开始向前遍历,依次和前面的元素进行比较,发现比前面的元素小时就和前面的元素交换否则遍历停止。第二趟从第3个元素开始,依次类推直到第n个元素。 稳定性:稳定的 时间复杂度: 最佳的情况是有序状态下,n 1趟遍历每趟只需要比较1次,O(n) 最差的情况是 阅读全文
posted @ 2017-08-12 22:15
Mike-Shen
阅读(95)
评论(0)
推荐(0)
摘要:
冒泡排序是排序算法中的基础算法 思路:从第一个元素开始向后遍历,依次和后一个元素比较,将较大的元素交换到后面,第一趟遍历后最大的元素排到了最后面。第二趟只需要遍历前n 1个元素,依次类推。在一趟遍历结束后,如果发现没有发生一次交换,则排序终止。 稳定性:稳定的 时间复杂度: 最佳的情况是有序状态下, 阅读全文
posted @ 2017-08-12 22:15
Mike-Shen
阅读(97)
评论(0)
推荐(0)
摘要:
希尔排序是插入排序的一种改进版本,Donald Shell在1959年提出而得名。 希尔排序的实现思路:设定一个缩小增量的规则,以某个增量对数组进行分组,对每个分组进行直接插入排序,然后缩小增量再次分组依次类推,直到增量缩小到1,程序结束。 希尔排序的时间复杂度与增量序列的选取有关。关键词比较次数、 阅读全文
posted @ 2017-08-12 22:14
Mike-Shen
阅读(114)
评论(0)
推荐(0)
摘要:
快速排序是目前公认最为快速和有效率的排序算法之一。快排基于分割数组的思想,首先选取一个哨兵,将数组中小于哨兵的元素归置到一边,将数组中大于等于哨兵的元素归置到另一边,然后再对两个子的部分再递归使用快排。 稳定性:快排是不稳定的,相等的元素可能会颠倒位置。 时间复杂度:O(nlog₂n) 空间复杂度: 阅读全文
posted @ 2017-08-12 22:13
Mike-Shen
阅读(153)
评论(0)
推荐(0)
摘要:
归并排序是建立在Merge操作上的一种排序方法,一般使用二分法将数组分为两部分,对每一部分递归使用排序方法,每一部分都有序后,使用Merge操作将两个有序的数组合并为一个有序的数组。 稳定性:归并排序是稳定的,相等的元素不会改变顺序。 时间复杂度:O(nlog₂n) 空间负责度:O(n) 归并排序是 阅读全文
posted @ 2017-08-12 22:13
Mike-Shen
阅读(117)
评论(0)
推荐(0)
摘要:
堆排序是排序算法中最有效率的算法之一,适合于大数量的数组排序。 堆排序的思路是基于完全二叉树的概念,对一个完全二叉树做层序遍历可以转换成数组,反之一个数组也可以看作是一个完全二叉树,二者可以互相表示。有这样的规律:下标从0开始,第i个元素的左孩子是i 2+1,右孩子是i 2+2,最后一个叶子节点是l 阅读全文
posted @ 2017-08-12 22:12
Mike-Shen
阅读(157)
评论(0)
推荐(0)
摘要:
选择排序是排序算法中最简单的一种,在数据量比较大时效率是非常低的。 时间复杂度:最佳、最差以及平均时间复杂度均是O(n^2) 空间复杂度:O(1) 稳定性:不稳定 Java版的一种实现如下: public void sort(T[] arr) { if (arr == null || arr.len 阅读全文
posted @ 2017-08-12 22:10
Mike-Shen
阅读(127)
评论(0)
推荐(0)

浙公网安备 33010602011771号