算法设计与分析基础
钢琴冰指
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法设计与分析基础-3.1、选择排序、冒泡排序
选择排序public class selectSort { private static void sort(int[] a) { int i, j,min; int tmp; for (i = 0; i < a.length-1; i++) { min=i; for (j = i + 1; j < a.length; j++) if(a[min]>a[j]原创 2013-04-26 13:59:52 · 832 阅读 · 0 评论 -
算法设计与分析基础-8.4、背包问题和记忆功能
时间效率空间效率都是O(nW),n是物品个数,W是背包重量采用自顶向下,它只对必要的子问题求解并且只解一次。import java.util.ArrayList;public class MFKnapsack { private int n; private int W; private int[] Weights; private int[] Values; pri原创 2013-07-02 10:37:14 · 2509 阅读 · 0 评论 -
算法设计与分析基础-8.3、最优二叉查找树
空间效率O(n2),时间效率O(n3)当1public class OptimalBST { private int nodeNum = 4; private int[][] R; private double[][] C; private double[] p; public OptimalBST(int nodeNum, double[] a) { super();原创 2013-07-01 15:53:37 · 1632 阅读 · 0 评论 -
算法设计与分析基础-8.2、warshall算法和Floyd算法
求传递闭包warshall算法时间复杂度O(n3)传递闭包:一个n阶布尔矩阵T={i,j},如果从第i个顶点到第j个顶点之间存在一条有效的有向路径,则T[i][j]=1,否则T[i][j]=0完全最短路径问题要求找到从每个顶点到其他所有顶点之间的距离Floyd算法通过一系列n阶矩阵来计算一个n顶点加权图的距离矩阵import java.util.ArrayList;p原创 2013-06-24 09:04:36 · 977 阅读 · 0 评论 -
算法设计与分析基础-7.2、字符串匹配中的输入增强技术,Horspool算法
平均效率O(n)import java.util.HashMap;public class Horspool { public static final char[] CHAR_TABLE = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's'原创 2013-06-21 11:18:28 · 1857 阅读 · 0 评论 -
算法设计与分析基础-7.1、分布计数排序
import java.util.Arrays;public class DistributionCounting { public static int[] distributionSort(int a[], int l, int u) { int i = 0, j = 0; int d[] = new int[10]; int s[] = new int[10]; for原创 2013-06-21 09:58:46 · 1675 阅读 · 0 评论 -
算法设计与分析-4.1、归并排序
java实现的,递归的就写了这么长时间,非递归的就更不好想了,不过硬着头皮也要写出来不加注释了,理解的基础上记住,反复看看递归的方法看了半天,找了n个方法看,终于看懂了一个有详细解释的,通过写非递归的方法让我认识到了几点:一、非递归太难了!!看不出来就一步一步的画图,先选择简单的输入,在选择其他输入二、看同样一种算法,看会其中一种就行的,别看看这个又看看那个的,今天就耽误了一天的时原创 2013-04-19 09:25:45 · 835 阅读 · 0 评论 -
算法设计与分析基础-4.2、快速排序
java的也要实现,partition理解了很久,做这种题,不理解的时候画出图来!方法一、#include "stdafx.h"int a[100];void quickSort(int a[],int l,int h){if(l>=h)return;int i,j,key;i=l;j=h;key=a[i];while(i<j){while(ikey)j--;if原创 2013-03-31 22:47:37 · 925 阅读 · 0 评论 -
算法设计与分析基础-5.1、插入排序
插入排序import java.util.Arrays;public class insertSort {private static void sort(int[] a){ int i,j,v; for(i=1;i<a.length;i++) { v=a[i]; j=i-1; while((j>=0)&& (a[j]>v )) { a[j+1]=a[j]原创 2013-04-26 14:01:00 · 766 阅读 · 0 评论 -
算法设计与分析基础-6.4、堆和堆排序
堆排序递归实现,用java,最后两个函数是为了输出好看import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class BuildMaxHeap {private static int[] sort= new int[] { 3, 4, 43, 5, 1, 6, 23, 55,原创 2013-04-15 22:25:32 · 884 阅读 · 0 评论
分享