- 博客(3)
- 资源 (13)
- 收藏
- 关注
原创 Java实现计数排序
输入:A[0..n]待排序数组,B[0..n]存放排序后的数组,k表示输入数组每个元素都是在0到k之间的整数。代码public class CountingSort {public final void CountSort(int []A,int []B,int k){int []C=new int[k+1];for(int i=0;iC[i]=0;}for(int
2016-11-04 22:21:53 1667
原创 Java实现快速排序
一、快速排序原理分解:数组A[p..r]被划分为两个子数组A[p..q-1]和A[q..r],使得A[p..q-1]中的每一个元素都小于等于A[q],而A[q]也小于等于A[q..r]中的每一个元素。解决:通过递归调用快速排序,对子数组A[p..q-1]和A[q..r]进行排序。合并:应为子数组都是原址排序的,所以不需要合并操作:数组A[p..r]已经有序。Java代码:
2016-11-02 21:58:23 1500
原创 java实现堆排序
一、堆排序原理堆可以看做是一个近似的完全二叉树,树上的每一个节点对应数组中的一个元素。除了最底层外,该树是完全充满的。而且是从左到右填充。二叉堆可以分为两种形式:最大堆和最小堆。堆排序的算法:利用最大堆创建函数将输入数组建成最大堆,因为数组的最大元素总在根节点A[0]中,通过把它与A[n]进行互换,我们可以让该元素放在正确的位置上。这个时候从堆中去掉节点n,在剩余的节点中原来根的孩子节
2016-11-01 22:55:16 1508
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人