![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序算法
thngk
这个作者很懒,什么都没留下…
展开
-
排序【选择排序】
选择排序思想: 数组长度为L,做(L-1)趟的选择,把最小的元素放在有序数组的后面(无序数组的首位)。 这样,每趟需要做(L-1)~1次比较,总共做L*(L-1)/2次比较,时间复杂度O(N*N),空间复杂度O(1),是一种稳定的排序。[code="java"]/** * SelectSort.java * * 该类实现选择排序. * i.e:...原创 2008-08-31 14:52:20 · 56 阅读 · 0 评论 -
排序【插入排序】
插入排序思想: 将当前无序序列的首个记录插入到有序序列中,逐个扩充有序序列直至完成排序。 数组有N个元素,那么要求至多进行N(N-1)/2次比较,时间复杂度O(N*N),空间复杂度O(N).[code="java"]/** * InsertSort.java * * 插入排序 * * @author Administrator */...原创 2008-08-31 15:22:08 · 65 阅读 · 0 评论 -
排序【冒泡排序】
冒泡排序思想:较大的记录往下沉淀。[code="java"]/** * SimpleBubbleSort.java * * 冒泡排序。 * * @author Administrator */public class SimpleBubbleSort { public static void simpleBubbleSort(int[] a)...原创 2008-08-31 15:56:32 · 71 阅读 · 0 评论 -
排序【快速排序】
快速排序:设定一个枢纽的值,一般以首个元素的值为枢纽的值,把比枢纽小的元元素放在左边,比枢纽值大的元素放在右边,最后把枢纽的值放到合适的位置。根据返回枢纽的位置,对以上过程进行递归。[code="java"]/** * EnhancedQuickSort.java * * 快速排序 * * @author Administrator */publ...原创 2008-08-31 17:04:12 · 86 阅读 · 0 评论 -
排序【归并排序】
归并排序思想:以空间换取时间,不断地来回复制并且排序两个有序序列,直到排序完成。递归到最底层后,可知道有序序列长度大小初始值为1,然后开始往回递归。时间复杂度介于O(N)和O(N*logN)之间,空间复杂度O(N),是一种渐进最优算法。这里采用的是分治策略。关于分治与递归,是比较有用的算法。[code="java"]/** * MergeSort.java 归并...原创 2008-09-02 12:23:27 · 65 阅读 · 0 评论 -
排序【计数排序】
思想:设置数组b、c,c用于放置a数组中每个元素的值出现的次数,然后得出a中元素=0。计数排序是一种线性时间复杂度的排序,设定a[0:N-1]中元素的最大值为M,这排序的时间复杂度O(M+N)。[code="java"]/** * CountingSort.java * 计数排序 * @author Administrator */public class ...原创 2008-09-03 09:37:19 · 66 阅读 · 0 评论