算法
流水不腐小夏
这个作者很懒,什么都没留下…
展开
-
经典排序算法——归并排序
归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个原创 2013-06-08 15:01:25 · 898 阅读 · 0 评论 -
查找算法总结
====================顺序查找算法====================1. 算法描述 顺序比较即可。2. 平均查找长度 (n+1)/2, 其中n为表长。 3. 算法实现 省略 4. 优化思想 根据经验,目前被查到越多的元素,将来可能被查到的可能性也越大。所以可以考虑,每次查找到一个元素后,将它和直接前驱交换位转载 2013-06-08 15:41:16 · 953 阅读 · 0 评论 -
经典排序算法——直接选择排序
直接选择排序(Straight Select Sorting) 也是一种简单的排序方法,它的基本思想是:第一次从R[0]~R[n-1]中选取最小值,与R[0]交换,第二次从R[1]~R[n-1]中选取最小值,与R[1]交换直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选原创 2013-06-07 15:42:24 · 958 阅读 · 0 评论 -
经典算法排序——插入排序
插入排序是这样的,一个无需的数组,依次插入到另外一个有序的数组,在插入中排序。算法描述:⒈ 从第一个元素开始,该元素可以认为已经被排序⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置⒌ 将新元素插入到下一位置中⒍ 重复步骤2原创 2013-06-07 11:16:49 · 1021 阅读 · 0 评论 -
经典排序算法——快速排序
链接:http://www.cnblogs.com/morewindows/archive/2011/08/13/2137415.htmlJava代码实现:public class Sort { static final int MAX = 20; public static void main(String[] args) { int[] data = new int[原创 2013-06-07 15:29:17 · 1005 阅读 · 0 评论 -
经典算法排序——希尔排序
希尔排序(Shell Sort)又称为缩小增量排序,输入插入排序算法,是对直接排序算法的一种改进。本文介绍希尔排序算法。 对于插入排序算法来说,如果原来的数据就是有序的,那么数据就不需要移动,而插入排序算法的效率主要消耗在数据的移动中。因此可知:如果数据的本身就是有序的或者本身基本有序,那么效率就会得到提高。 希尔排序的基本思想是:将需要排序的序列划分成为若干个较小的子原创 2013-06-07 14:06:59 · 1065 阅读 · 0 评论 -
经典排序算法——冒泡排序
冒泡排序比较简单,就是依次比较相邻的数据内容,前者比后者大,则交换数据内容。public class Sort { static final int MAX = 20; public static void main(String[] args) { int[] data = new int[MAX]; Random random = new Random(); //原创 2013-06-07 14:15:10 · 1014 阅读 · 0 评论