数据结构和算法
文章平均质量分 77
code_7
这个作者很懒,什么都没留下…
展开
-
"八皇后"问题的解法(1)
最近准备整理5种常见的"八皇后"问题的解法,这是第一篇,用递归方法求解。 简单介绍下"八皇后"问题:如何在8*8棋盘上无冲突放置8个皇后,无冲突可按如下理解(1)任何水平或竖直方向不能再有其他皇后;(2)正负45‘方向不能再有皇后; 源代码如下: /* 2015.5.21 by HanChun http://blog.csdn.net/code_7 */ public cl原创 2015-05-21 16:36:11 · 534 阅读 · 0 评论 -
Shell排序 Java
排序的方法有很多,一般言,很难说哪一种方法是最好的。每一种方法都有优缺点,有各自应用的环境。排序一般会进行两种操作1、比较两关键字大小;2、将记录从一个位置移到另一个位置;前者通常来说是必要的,而后者则可以通过改变记录存储方式来避免。后面还会用一篇专门的文章来讨论一下怎么来分析这些算法的复杂度。还请您留意,应该就是最近一周出来!(2015.6.20前) 常见的内部排序算法大致可以分为以下原创 2015-06-15 10:15:58 · 673 阅读 · 0 评论 -
直接插入排序 Java
排序的方法有很多,一般言,很难说哪一种方法是最好的。每一种方法都有优缺点,有各自应用的环境。排序一般会进行两种操作1、比较两关键字大小;2、将记录从一个位置移到另一个位置;前者通常来说是必要的,而后者则可以通过改变记录存储方式来避免。后面还会用一篇专门的文章来讨论一下怎么来分析这些算法的复杂度。还请您留意,应该就是最近一周出来!(2015.6.20前) 常见的内部排序算法大致可以分为以下原创 2015-06-14 14:16:55 · 612 阅读 · 0 评论 -
冒泡排序 Java
排序的方法有很多,一般言,很难说哪一种方法是最好的。每一种方法都有优缺点,有各自应用的环境。排序一般会进行两种操作1、比较两关键字大小;2、将记录从一个位置移到另一个位置;前者通常来说是必要的,而后者则可以通过改变记录存储方式来避免。后面还会用一篇专门的文章来讨论一下怎么来分析这些算法的复杂度。还请您留意,应该这就是最近一周出来!(2015.6.20前) 常见的内部排序算法大致可以分为以原创 2015-06-14 10:22:35 · 590 阅读 · 0 评论 -
二叉树的三叉链表存储结构的简单实现
三叉链表存储结构比二叉链表存储多了一个指向父节点的引用,虽然增加了空间开销,但是提升的查找的速度。下面是源代码,功能不多,但是可以帮助大家很快理解这种数据结构。 //a simple example to ThreeLinkBinTree //HanChun at Xidian University package mywork.c20150611; public class ThreeLi原创 2015-06-12 18:31:51 · 2449 阅读 · 0 评论 -
直接选择排序 Java
排序的方法有很多,一般言,很难说哪一种方法是最好的。每一种方法都有优缺点,有各自应用的环境。排序一般会进行两种操作1、比较两关键字大小;2、将记录从一个位置移到另一个位置;前者通常来说是必要的,而后者则可以通过改变记录存储方式来避免。后面还会用一篇专门的文章来讨论一下怎么来分析这些算法的复杂度。还请您留意,应该这就是最近一周出来!(2015.6.20前) 常见的内部排序算法大致可以分为以下六类共十种: 选择排序:(1)直接选择排序;(2)堆排序; 交换排序:(3)冒泡排序;(4)快速排序; 插入排序: (原创 2015-06-10 23:10:02 · 621 阅读 · 1 评论 -
二叉树的二叉链表存储简单实现
二叉链表存储二叉树,简单说就是:添加左右两个子节点,分别代表两个引用,left, right,来记住该节点的左右子节点。 源代码如下(blog中所以源代码均已实际运行通过): /* * a simple example to TwoBinTree * HanChun 2015.6.7 */ package mywork.c20150607; public class TwoLinkB原创 2015-06-07 21:31:27 · 1562 阅读 · 0 评论 -
递归 Java
递归的理解难点在于先有一个压栈,然后当寻找到递归出口时,会从栈顶return。如果您还不太明白是什么意思,先看下面代码,想想结果是什么? public class test1{ static int i = 0; public static int test(){ while(i < 7){ i++; i = test(); } System.out.println原创 2015-06-07 18:23:58 · 953 阅读 · 0 评论 -
LinkList的一个简单实现
链式线性表是数据结构里很简单但也是很常见的数据结构,相比顺序存储的线性表,可以更快的实现添加和删除操作,但读取速度比顺序结构会慢。链式线性表的关键在于,每个数据存储为节点形式。不仅仅保存有数据,还有一个引用“next”指向下一个节点。链式结构还可以再扩展为双向链表、循环链表等等。基本原理一样,只是增加了引用。下面就是最简单的链式线性表的实现的源代码,会有潜在的bug,但是不影响我们理解这种数据结构原创 2015-06-05 16:25:30 · 930 阅读 · 0 评论 -
SequenceList 的一个简单实现
java实现的SequenceList主要是顺序线性表一个简单例子,欢迎大家一起讨论更好的实现,和JDK源码的讨论!原创 2015-06-04 11:56:41 · 1056 阅读 · 0 评论 -
折半插入排序 Java
排序的方法有很多,一般言,很难说哪一种方法是最好的。每一种方法都有优缺点,有各自应用的环境。排序一般会进行两种操作1、比较两关键字大小;2、将记录从一个位置移到另一个位置;前者通常来说是必要的,而后者则可以通过改变记录存储方式来避免。后面还会用一篇专门的文章来讨论一下怎么来分析这些算法的复杂度。还请您留意,应该这就是最近一周出来!(2015.6.20前) 常见的内部排序算法大致可以分为以原创 2015-06-14 15:39:37 · 676 阅读 · 0 评论