![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法整理
yanzi1225627
南无飒哆喃。三藐三菩陀。俱胝喃。怛侄他。唵。折戾主戾。准提娑婆哈。南无阿弥陀佛。
展开
-
算法整理(一)----选择排序
首先看源码:public class SelectSort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub SelectSort mSelectSort = new SelectSort(); Integer [] inpu原创 2014-01-01 20:14:58 · 2253 阅读 · 0 评论 -
算法整理(二)---快速排序的两种实现方式:双边扫描和单边扫描
首先简单谈下快速排序的特点,时间复杂度O(nLog n),最差时间复杂度O(n^2).是一种不稳定的排序方法。基本思想是分治法,这位大大的http://blog.csdn.net/morewindows/article/details/6684558 讲的非常清楚了,分治法+挖坑法,我就不多说了。就是以某个数为参照,使得左边的都小于他,右边的数都大于他。然后对他的左右两个区间采取同样的方法进行递归原创 2014-06-30 22:18:36 · 8534 阅读 · 4 评论 -
算法整理(三):插入排序
插入排序很简单,就像打扑克。手里有个牌4,再来一张牌5就本能的放到第一个牌的右边。如果来了个3就从右往左扫描,只要左边的比这个待插入数字大就交换。 插入排序是一种稳定的排序方法,时间复杂度O(n*n),空间复杂度O(1),最好的情况下时间复杂度为O(1).即本来就是一个有序或者相等的数组,则只需比较n-1次即可。下为源码,只需三行代码即可。//===========================原创 2014-07-09 21:05:52 · 2112 阅读 · 0 评论 -
算法整理(四):浅析快速排序的优化问题
前文介绍了快速排序的单边扫描和双边扫描,但么有做对比,今天来简单分析下。一、单边扫描的缺点 单边扫描最大的缺点是每次都要交换,如果一个数组是 5 4 3 2 1,用单边扫描的话,则从4开始,4要和4交换一次,3要和3交换一次,依次类推,这种无意义的操作。正因此用双边扫描会更好,第一趟只需交换一次,就能得到1 4 3 2 5这样的数组。但双边扫描也是可以进一步优化的。二、双边扫描的优化 优化一:对k原创 2014-07-11 00:00:32 · 2840 阅读 · 0 评论