数据结构
宇1990
这个作者很懒,什么都没留下…
展开
-
贪心算法总结
2原创 2014-01-07 23:02:50 · 592 阅读 · 0 评论 -
动态规划总结
1原创 2014-01-07 23:02:21 · 462 阅读 · 0 评论 -
分治法总结
1、分治法之快排: static int[] array = { 1, 3, 56, 33, 765, 43, 7, 65, 56345, 76, 3453, 6465 }; public static void quickSort(int[] array, int begin, int end) { int middle = selectIndex(array, begin, end)原创 2013-12-30 23:44:33 · 637 阅读 · 0 评论 -
回溯法总结
1、回溯法解决老鼠迷宫问题: static int maze[][] = { {2, 2, 2, 2, 2, 2, 2, 2, 2}, {2, 0, 0, 0, 0, 0, 0, 0, 2}, {2, 0, 2, 2, 0, 2, 2, 0, 2}, {2, 0, 2, 0, 0, 2, 0, 0, 2}, {2, 0, 2, 0, 2, 0,原创 2014-01-07 22:23:36 · 571 阅读 · 0 评论 -
数据结构
http://www.bccn.net/article/kfyy/sjjg/原创 2013-08-26 12:30:58 · 483 阅读 · 0 评论 -
java实现全排列
使用java实现全排列 public void allSort(char[] array,int begin,int end){ if(begin==end){ for (int i = 0; i System.out.print(array[i]); } System.out.println(); }else { for (int i = begin; i char tem原创 2013-02-28 18:27:57 · 280 阅读 · 0 评论 -
几种常见的排序算法
最近在看数据结构看到排序时,感觉蛮不错的于是乎归纳一下: 1、冒泡排序 public static int[] bubbleSort(int[] a){ for (int i = 0; i for (int j = 0; j if(a[j]>a[j+1]){ // a[j]=a[j]+a[j+1]; // a[j+1]=a[j]-a[j+1]; // a[j]=a[j]-a[j原创 2013-02-28 13:58:13 · 313 阅读 · 0 评论 -
精通八大排序算法系列:二、堆排序算法
作者:July 、二零一一年二月二十日 本文参考:Introduction To Algorithms,second edition。 ------------------- 此精通排序算法系列,前一节,已讲过了一、快速排序算法,其中,快速排序每一趟比较用时O(n),要进行lgn次比较,才最终完成整个排序。所以快排的复杂度才为O(n*lgn)。而本节,我们要讲的是堆排序算法。据转载 2013-03-11 20:24:45 · 480 阅读 · 0 评论 -
java求最大公约数
public static int CommonDivisor(int a,int b){ if(b>a){ a=a^b; b=a^b; a=a^b; } System.out.println(a+"==="+b); int r=a%b; while (r!=0) { a=b; b=r; r=a%b; } return b; }原创 2013-02-28 18:48:13 · 548 阅读 · 0 评论 -
无序整数数组中找第k大的数
【解法一】 我们先假设元素的数量不大,例如在几千个左右,在这种情况下,那我们就排序一下吧。在这里,快速排序或堆排序都是不错的选择,他们的平均时间复杂度都是 O(N * log2N)。然后取出前 K 个,O(K)。总时间复杂度 O(N * log2N)+ O(K) = O(N * log2N)。 你一定注意到了,当 K=1 时,上面的算法也是 O(N * log2N)的复杂度,而显然我们可以转载 2013-02-28 18:31:36 · 511 阅读 · 0 评论