- 博客(5)
- 收藏
- 关注
原创 算法导论-快速排序算法-Java实现
快速排序:使用分治策略,将数组按照比较值分类到两边,递归后,再进行分类到两边,比较简单,直接上代码:public class QuickSort { public static void sort(int[] arr,int left,int right){ if(right>left){ int mid=partion(arr,left,right); sort(arr...
2018-03-25 19:14:45 235
原创 堆排序算法-Java实现
堆排序算法采用递归实现:首先实现维护最大堆的性质的方法,即假设子节点均已经为最大堆,那么父节点上的值只需要和子节点比较,不断下沉,即可又成为最大堆。 public static void MaxHeapMaintance(int[] arr,int node,int length){ if(node<1){ return; } int leftNode=2*node; ...
2018-03-25 15:36:17 183
原创 分治算法求解最大连续子数组
分治策略求解最大连续子数组问题:原理:如果想要通过递归进行实现,就必须将数组进行子数组的划分,通过子数组划分,出现三种情况可能包含最大子数组,一种是在左边的子数组,一种是在右边的子数组,另一种是跨越中间量的子数组,对于左右子数组便又变成了求解其最大子数组(递归),而跨越中间的子数组需要单独进行遍历求取最大子数组一直存在理解上的疑惑:如何确定递归得到的就是最大子数组?通过正向进行递归计算如下:假定存...
2018-03-19 00:04:03 1904
原创 归并排序 Java实现(递归试)
归并排序: 将两个有序的序列合并成一个有序的序列,相当于手中有两副已经排好序并且每副单独叠到一起的牌,一次判断大小,再重新放到一个新的位置并排好序对于一副混乱的牌而言,可以将牌分成两两一组,再依次合并排序,归并排序算法复杂度 纵向递归深度log(n) 横向比较次数为c*n,复杂度为O(n*log(n))public class MergeQuene { static public int[] ...
2018-03-18 13:11:11 237
原创 插入排序实现
插入排序算法实现插入排序可以理解为在从第一个数开始,依次向前面排好序的数组进行比较,好比起牌时依次将数放入拍好序的手牌中。算法复杂度上,跟排序程度有关,最大复杂度为O(n^2)public class InsertionQuene { static public int[] insertionDesend(int[] number){ int len = number.l...
2018-03-18 09:46:13 159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人