自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员想事儿

一个新手程序员的fighting!

  • 博客(11)
  • 资源 (1)
  • 问答 (3)
  • 收藏
  • 关注

原创 数据结构之堆的定义

基本概念堆是一种基本的数据结构。在这里我用数组来形容,在一个二叉堆的数组中,每一个元素都要保证大于等于另外两个特定位置的元素。同时相应的,这些元素又要大于等于另外两个相应位置的元素,整个数据结构以此类推。如果我们将整个数据结构画成树状结构,就能够清晰地看出整个结构的样子。 图片中显示的是最大堆和最小堆,两者的原理近似,这里我们讨论最大堆的实现。当一颗二叉树的每个结点都大于等于它的两个子节点时

2016-07-11 01:30:38 23565

原创 算法之快速排序

基本概念快速排序是一种分治的排序算法。它将一个数组分成两个子数组,将两部分独立的排序。当两个数组都有序时整个数组也就自然有序了。在快速排序中,切分的位置取决于数组的内容。切分的关键在于使数组满足下面三个条件: 1. 对于某个下表j,数组[j]的位置已经选定; 2. 数组[0]到数组[j-1]中的所有元素都不大于数组[j]; 3. 数组[j+1]到数组[length-1]的所有元素都不小

2016-07-04 14:40:00 721 1

原创 贪吃蛇的java代码分析(三)

代码剖析在上一篇文章中,我们完成了贪吃蛇部分代码的构造。回头审视我们写的代码与思路,会发现我们遗漏了一个重要的地方,那就是:贪吃蛇的自身移动。想必大家都知道,贪吃蛇自身是会自己移动的,并且会跟随你的方向来不断移动。我们需要在代码中来体现这个功能,那么如何体现呢?查阅API,我们发现了一个TIMER类。API中的描述是:在指定时间间隔触发一个或多个ActionEvent,一个实例用法就是动画对象,它

2016-06-05 22:16:46 11883 8

原创 贪吃蛇的java代码分析(二)

代码剖析贪吃蛇是一款十分经典的小游戏,对初入coding的朋友来说,拿贪吃蛇这样一个案例来练手十分合适,并不高的难度和成功后的成就感都是学习所必须的。下面我将依照我当时的思路,来逐步分析实现的整个过程。让我们逐一分析。首先,整个游戏最基本的元素是地图。在java中用于绘图的类是swing和awt,在这里主要用到swing类。swing中用于窗口显示的类有JFrame及其子类。JFrame可以直接添

2016-06-05 18:42:48 11256 6

原创 贪吃蛇的java代码分析(一)

自我审视 最近自己学习java已经有了一个多月的时间,从一开始对变量常量的概念一无所知,到现在能勉强写几个小程序玩玩,已经有了长足的进步。今天没有去学习,学校里要进行毕业答辩和拍毕业照了,于是请了几天的假,自己也就有了一点空余的时间。回想这一个多月,自己做到好的地方是把大部分时间都用在了看书和码代码上,学习的重点放在了追求对知识的理解和内容的广度之上。书籍方面阅读了《java核心技术》和《jav

2016-06-01 16:57:16 20893 1

原创 数据结构之队列

基本概念队列是一种基本的数据结构,它在结构两端都有限制,插入只能在一段进行,而删除只能在另一端进行。允许删除的一端叫队尾,允许插入的一段叫队头。队列拥有先进先出的特点,又称为FIFO表。 代码实现 队列根据其内部实现方式的不同,分为用链表实现的链队和用数组实现的顺序队。链表实现:public class Queue { private Node First;//定义头节点 pr

2016-05-28 19:44:47 428

原创 数据结构之链表

基本概念链表是一种基本的数据结构类型,它由一个个结点组成。每一个结点包括一个数据的存储和一个指向下一个结点的引用。在这个定义中,结点是一个可能含有任意类型数据的抽象实体,它所包含的指向结点的应用显示了它在构造链表之中的作用。和递归程序一样,递归数据结构的概念一开始也令人费解,但其实它的简洁性赋予了它巨大的价值。代码实现public class LinkedList { private

2016-05-24 00:19:59 317

原创 算法之希尔排序

基本概念希尔排序是一种基于插入排序的快速排序算法。相较于传统的插入排序,他在处理大规模乱序数组时具有较大优势。试想一个无序数组,其最小值在数组末端,那么如果使用传统的插入排序,只能通过交换相邻的元素一个一个地把最小值移动到第一个,显然效率不高。希尔排序将整个数组分成若干个序列(序列的长度叫“增量”),对每一个序列进行插入排序,然后依次缩减增量再进行插入排序。随着增量的减小以及数组的局部有序化,数组

2016-05-22 00:15:56 294

原创 算法之自底向上的归并排序

基本概念之前使用自顶向下的归并排序,我们的主要思想是将一个大问题分成一个小问题,通过解决一个一个小问题来最终完成大问题。既然我们可以通过化整为零的方式Coding,那么是不是也可以由简入繁,由下到上? 仔细一想,我们可以先归并小数组,在成对的归并得到的较小数组,通过不断往复循环,归并大的数组。简单来说,就是两两归并,四四归并,八八归并。代码实现public class MergeSort

2016-05-20 22:58:35 4629 1

原创 算法之自顶向下的归并排序

基本概念试想一个操作,将一个数组(默认为无序)切割成两段,然后分别进行排序,然后将结果结合在进行排序归并。在数据结构之中这是一种简单的递归归并排序算法,是应用高效算法设计中分治思想的典型例子。 归并排序的基本逻辑是,要对数组[min,max]进行排序,先把他分成[min,mid]和[mid + 1, max]两个数组,分别进行排序最后归并起来。 代码实现接下来我将用java语言完成代码的描述。

2016-05-19 01:04:07 1616

原创 数据结构之栈的实现

基本概念栈(下压栈)是一种典型的数据集合类型,其内部的数据存储方式采用先进后出的方式。当你在栈内部添加一个元素后,再次添加的元素会处于旧元素的上层,你可以想象一叠邮件放在桌上,你每看完一个新的邮件放在邮件堆上时,最顶上的邮件就是你最新看完的邮件,而老的邮件就被压在了底层。这就是一种典型的栈结构。 代码实现下面我将用java语言来实现栈结构,数据底层使用数组方法。public class Sta

2016-05-18 01:37:21 516

贪吃蛇源码

这是一个贪吃蛇的源码, 实现的功能有主动移动,不停变色; 传递的是TXT文档,亲测可以运行。

2016-06-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除