数据结构
缘梦
这个作者很懒,什么都没留下…
展开
-
冒泡排序(C语言版)
关于冒泡排序,相信大家无论学习哪种学习语言,在学到循环和数组的时候肯定都会接触到这个最基本的排序算法。为什么这种算法要叫做冒泡排序呢?是因为这个排序算法有点像水泡向上冒,所以叫做冒泡排序。 冒泡排序的定义: 一种交换排序,他的基本思想是:两两比较相邻记录的关键字,如果反序则排序,知道没有反序的记录为止。 在下面的代码中,我给出了三种冒泡排序,分别是最原始的冒泡排序,正宗的冒泡排...2013-03-01 19:13:39 · 201 阅读 · 0 评论 -
快速排序(C语言版)
关于快速排序,其实它跟冒泡排序一样,也是一种交换排序算法,但是他比冒泡排序快速的多,减少了比较次数和移动交换次数,是冒泡排序的升级。 下面先讲一些必要的定义吧: 快速排序的基本思想是: 通过一趟排序将带排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,以达到整个序列的目的。 枢轴:通过Partition函数,先选...2013-03-01 21:58:20 · 200 阅读 · 0 评论 -
线性表的顺序存储结构(java版)
在说线性表的顺序存储结构之前,首先要讲一下必要的定义。 线性表的定义 :零个或多个数据元素的有限序列 线性表的顺序存储结构 :用一段地址连续的存储单元依次存储线性表的数据元素。 在了解这两个必要的定义之后,我们就来看一下他的代码实现吧,在本文中,由于我个人比较熟悉Java,所以就用Java来进行代码实现了,当然,如果条件允许的话,还是比较建议读者通过C或者C++来进行代码实现。 ...原创 2013-02-27 18:43:07 · 159 阅读 · 0 评论 -
线性表的链式存储结构(java版)
在前面,我们已经讲了线性表的顺序存储结构(java版) ,我们也知道了他的代码实现,在了解之后,我们很容易就能够发现他有一个最大的缺点,就是插入和删除需要移动大量的元素,这显然是很耗费时间的,于是,为了解决这个问题,就出现了链式存储结构。 我学习的时候是看程杰的《大话数据结构》的,同时结合我们的经典教材清华出版社的《数据结构》,但是在学习过程中,我不小心把“插入到第i个位置之后”理解成了...2013-02-27 23:04:29 · 178 阅读 · 0 评论 -
栈的顺序存储结构(C语言版)
我在准备的过程中,发现很多笔试题和面试的时候,都是用C语言来描述的,而且现在我的一些没有Java基础的师弟正在开始学习数据结构,所以为了方便他们也方便自己还是下定决心用C语言进行数据结构的代码实现,毕竟所有的语言都是相通的,学起来并不难,更何况我大一的时候学过呢,所以在此向一些希望看到我的Java版本实现的朋友道个歉。 栈的定义:限定仅在表尾进行插入和删除操作的线性表,我们把允许插入和...2013-02-28 17:43:30 · 344 阅读 · 0 评论