摘要: 快速排序快速排序和归并排序一样,都来自分治法的思想,由于快速排序在时间复杂度为O(n*logn)的几种排序算法中效率较高,因此被经常采用。快速排序的思想在实际的生活中经常遇到:有一堆面额不等的钞票,要把它们从小到大排序,首先可以找出一张作为基准,比它面额小的都放在左边,比它面额大的都放在右边,这时再... 阅读全文
posted @ 2014-12-21 15:52 疯子乙 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 归并排序归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。代码:public class S... 阅读全文
posted @ 2014-12-21 11:37 疯子乙 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 壳排序(希尔排序)shell排序的思想是根据步长由长到短分组,进行排序,直到步长为1为止,属于插入排序的一种。shell排序是对插入排序的一个改装,它每次排序把序列的元素按照某个增量分成几个子序列,对这几个子序列进行插入排序,然后不断的缩小增量扩大每个子序列的元素数量,直到增量为一的时候子序列就和原... 阅读全文
posted @ 2014-12-21 11:33 疯子乙 阅读(850) 评论(0) 推荐(0) 编辑
摘要: 插入排序插入排序的思想有点像打扑克抓牌的时候,我们插入扑克牌的做法。想象一下,抓牌时,我们都是把抓到的牌按顺序放在手中。因此每抓一张新牌,我们都将其插入到已有的排好序的手牌当中,注意体会刚才的那句话。也就是说,插入排序的思想是,将新来的元素按顺序放入一个已有的有序序列当中。举个例子可能更容易理解一些... 阅读全文
posted @ 2014-12-21 11:32 疯子乙 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 选择排序思想选择排序的思想非常直接,从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了。可以很清楚的发现,选择排序是固定位置,找元素。相比于插入排序的固定元素找位置,是两种思维方式。代码:[java]view plainco... 阅读全文
posted @ 2014-12-21 11:32 疯子乙 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 简介不同的排序算法适用于不同的实际环境中,主要考虑以下的因素:1.时间复杂度(算法执行时间)2.空间复杂度(存储空间)3.代码量对于数据量比较小的排序,1,2所产生的差别不大,主要考虑3;对于数据量较大的排序,主要考虑1。10种排序算法:1.冒泡排序————Bubble,相邻交换2.选择排序———每... 阅读全文
posted @ 2014-12-21 11:30 疯子乙 阅读(243) 评论(0) 推荐(0) 编辑