摘要: 一、堆排是个非常重要的排序算法了,也能够牵扯到很多其他方面的知识 先看代码 1 public static void heapSort(int[] arr) { 2 if (arr == null || arr.length < 2) { 3 return; 4 } 5 for (int i = 0 阅读全文
posted @ 2019-05-07 17:39 daydayup88 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 一、快排的引入: 1.给定一个数组arr,和一个数num,请把小于等于num的数放在数组的左边,大于num的数放在数组的右边。 这就是快排的一个partition的过程,简单,代码就不给了。 2.稍微进阶:荷兰国旗问题:给定一个数组arr,和一个数num,请把小于num的数放在数组的左边,等于num 阅读全文
posted @ 2019-05-07 16:56 daydayup88 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 1.归并排序代码先贴 上 1 public static void merge_sort(int[] A, int l, int r){ 2 int m = (l + r)/2; 3 if(l == r) 4 return; 5 merge_sort(A,l,m); 6 merge_sort(A,m 阅读全文
posted @ 2019-04-29 17:31 daydayup88 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 剖析递归行为和递归行为时间复杂度的估算一个递归行为的例子T(N) = a*T(N/b) + O(N^d)1) log(b,a) > d -> 复杂度为O(N^log(b,a))2) log(b,a) = d -> 复杂度为O(N^d * logN)3) log(b,a) < d -> 复杂度为O(N 阅读全文
posted @ 2019-04-29 15:32 daydayup88 阅读(211) 评论(0) 推荐(0) 编辑