
算法导论
yilan1993
这个作者很懒,什么都没留下…
展开
-
算法-归并排序
import java.util.Random;public class MergeSort { //归并 public static void merge(int a[],int left,int mid,int right){ int i=left; int j=mid+1; int k=0; int temp []=new int[right-left+1原创 2015-10-17 19:26:43 · 353 阅读 · 0 评论 -
算法导论-选择数组中第K小的数(选择问题)
import java.util.Random;/** * 在一个数组中,选择第K小元素的值 * @author qihouliang * */public class SelectProblem { //第一种方法是,利用选择最小值、最大值的思想,依次选择最小值,第二小...直到第K小。 //这种方法的时间复杂度为O(kN),当k比较小时,这种方法的时间复杂度较好。 p原创 2015-10-17 21:59:16 · 629 阅读 · 0 评论 -
算法导论-快速排序
import java.util.Random;public class QuickSort { public static int partition (int a[],int left,int right){ int flag=a[left];//以最左边即a[left]为标记数,这个可以随便选取 while(left<right){ while(left=fl原创 2015-10-17 20:08:21 · 344 阅读 · 0 评论 -
图的理解:深度优先和广度优先遍历及其 Java 实现
图的遍历,所谓遍历,即是对结点的访问。一个图有那么多个结点,如何遍历这些结点,需要特定策略,一般有两种访问策略:深度优先遍历广度优先遍历深度优先深度优先遍历,从初始访问结点出发,我们知道初始访问结点可能有多个邻接结点,深度优先遍历的策略就是首先访问第一个邻接结点,然后再以这个被访问的邻接结点作为初始结点,访问它的第一个邻接结点。总结起来可以这样说:每次都在访问完当前结点后首转载 2015-12-23 13:32:55 · 654 阅读 · 0 评论