数据结构与算法分析
文章平均质量分 66
离落风清
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
插入排序
//插入排序,稳定, 时间复杂度为O(n^2)import java.util.Arrays;public class InsertSortTest { /*public static void InsertSort(int[] a){//非降序 int j; for(int i = 1;i < a.length;i++ ){ int temp = a[i]; fo原创 2014-09-26 08:47:36 · 436 阅读 · 0 评论 -
递归分治求全排列
/** * 类名:Test6.java * 说明:全排列 */public class Test6 {public static void perm(Type[] a){perm(a,0,a.length-1);}private static void perm(Type[]a, int low,int high){if(low == high){原创 2014-10-15 21:25:28 · 701 阅读 · 0 评论 -
数据结构与算法分析(JAVA版)Chapter1练习题
/** * 类名:Test1.java * 说明:返回N的二进制的1个个数 */public class Test5 { public static int getOne(int n){ if(n < 2) return 1; return n%2 + getOne(n/2); } /** * 函数名称:main * 说明: */ public stat原创 2014-10-16 09:38:57 · 873 阅读 · 0 评论 -
Hash相关
HashTable源码分析原创 2014-10-30 20:32:52 · 586 阅读 · 0 评论 -
贪心算法
贪心算法的几个经典例题原创 2014-11-18 19:11:28 · 853 阅读 · 0 评论 -
常见排序的JAVA实现
各种排序算法 算是比较全的了原创 2014-11-06 21:50:17 · 1038 阅读 · 0 评论 -
最小堆和最大堆的JAVA实现
/** * 文件名:BinaryHeap.java * 时间:2014年11月3日下午7:15:34 * 作者:修维康 */package chapter6;import java.util.*;/** * 类名:BinaryHeap 说明:建立一个最小堆 */class MinHeap> { private int currentSize; private stati原创 2014-11-04 16:37:49 · 7511 阅读 · 0 评论 -
分治算法
分治算法分析,及几道经典的分治算法原创 2014-11-19 18:59:56 · 908 阅读 · 0 评论 -
递归分治解决棋盘覆盖问题
经典的递归分治策略原创 2014-11-06 09:11:37 · 986 阅读 · 0 评论 -
栈的实现(分别用数组和链表的java实现)
栈的实现(分别用数组和链表的java实现)原创 2014-10-21 21:30:25 · 1397 阅读 · 4 评论 -
平衡二叉树的实现 操作 遍历
平衡二叉树的实现 操作 遍历原创 2014-10-28 20:18:03 · 1946 阅读 · 0 评论 -
java类库ArrayList的基本实现
基本实现,具体的请看JDK源码原创 2014-10-20 20:30:12 · 483 阅读 · 0 评论 -
不相交集类(并查集)
并查集的JAVA实现原创 2014-11-10 21:38:02 · 1332 阅读 · 2 评论 -
最小生成树,最短路径算法
经典的贪心策略 Prim算法,Kruskal算法求最小原创 2014-11-18 17:05:52 · 1488 阅读 · 0 评论 -
JAVA类库LinkList的基本实现
JAVA类库LinkList的基本实现原创 2014-10-21 16:57:04 · 951 阅读 · 0 评论 -
找一个数组中第K大的数
快排找第K大原创 2014-11-07 16:33:14 · 2046 阅读 · 0 评论 -
最大子序列和及其位置问题
求最大子序列和问题有四种解法,及其开始和结束的位置原创 2014-10-15 15:09:29 · 973 阅读 · 0 评论 -
JAVA实现数组队列,循环数组队列,链式队列
队列的数组和链表实现及循环队列的数组实现原创 2014-10-23 17:11:18 · 2289 阅读 · 0 评论 -
用递归颠倒一个栈
题目:用递归颠倒一个栈。例如输入栈{1, 2, 3, 4, 5},1在栈顶。颠倒之后的栈为{5, 4, 3, 2, 1},5处在栈顶。分析:乍一看到这道题目,第一反应是把栈里的所有元素逐一pop出来,放到一个数组里,然后在数组里颠倒所有元素,最后把数组中的所有元素逐一push进入栈。这时栈也就颠倒过来了。颠倒一个数组是一件很容易的事情。不过这种思路需要显示分配一个长度为O(n)的数组,转载 2014-10-24 08:58:53 · 1187 阅读 · 0 评论 -
AVL树的旋转操作 图解 最详细
各大教课书上讲的都是左旋与右旋,其实这样很容易理解错误,我们换一种叫法。我们称呼左旋为:逆进针旋转。我们称呼右旋为:顺进针旋转。老规矩,直接上图。如果再看不懂AVL树的旋转,我就无能为力了。。。如果图中有错误,欢迎指正。转载 2014-10-24 17:48:48 · 551 阅读 · 0 评论 -
Splay Tree(伸展树)
二叉查找树(Binary Search Tree)能够支持多种动态集合操作。因此,在信息学竞赛中,二叉排序树起着非常重要的作用,它可以被用来表示有序集合、建立索引或优先队列等。作用于二叉查找树上的基本操作的时间是与树的高度成正比的。对一个含n各节点的完全二叉树,这些操作的最坏情况运行时间为O(log n)。但如果树是含n个节点的线性链,则这些操作的最坏情况运行时间为O(n)。而有些二叉查找转载 2014-10-26 11:03:45 · 652 阅读 · 0 评论 -
很特别的一个动态规划入门教程
对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划。本文力求通俗易懂,无异性,不让读者感到迷惑,引导读者去思考,所以如果你在阅读中发现有不通顺的地方,让你产生错误理解的地方,让你难得读懂的地方,请跟贴指出,谢谢! ----第一节----初识动态规转载 2014-11-13 09:50:10 · 653 阅读 · 0 评论 -
会场安排问题(贪心策略)
会场安排问题问题描述:假设要在足够多的会场里安排一批活动,活动的开始时间和结束时间已知,并希望使用尽可能少的会场。设计一个有效的算法进行安排。分析:这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,就对应要找的最小会场数。 图的最少着色问题,至今没有有效的算法,但这个问题和图的着色问题有不同,活动的时间区间之原创 2014-10-28 18:47:55 · 4071 阅读 · 3 评论 -
找到一个单词的所有相似单词
相似单词为 只差一位字母的单词,练习Map容器package chapter4;import java.util.*;import java.util.Map.Entry;/* * 说明:找到一个单词的所有相似单词 例如: wine 和 dine wind 和wing 只有一个字母不同 */public class TreeMapTest { /* * 判断2个单词是否原创 2014-10-30 20:26:37 · 3339 阅读 · 0 评论 -
几种查找算法
/** * 类名:SearchTest.java * 说明: 几种查找方法 */public class SearchTest { /** * 函数名称:binarySearch * 说明:二分查找 时间复杂度O(logN) */ public static > int binarySearch(Type[] a,Type x){ int low = 0;int原创 2014-10-15 15:42:21 · 449 阅读 · 0 评论 -
图(邻接表)
/** * 文件名:Graph.java * 时间:2014年11月13日下午4:51:12 * 作者:修维康 */package chapter9;import java.util.*;/** * 类名:Graph 说明: */class Vertex { public AnyType value; public int indegree = 0;// 顶点的入度,拓原创 2014-11-17 17:56:56 · 928 阅读 · 0 评论 -
数据结构与算法分析(JAVA版)Chapter2练习题
习题摘要:前N整数的随机置换 gcd算法 最小正子序列和 最大子序列乘积 等算法原创 2014-11-02 22:06:27 · 1584 阅读 · 0 评论
分享