上一页 1 ··· 7 8 9 10 11 12 13 下一页

2015年11月10日

摘要: 前面我们讲到了队列,今天我们接着讨论另外一种数据结构:堆栈。堆栈几乎是程序设计的命脉,没有堆栈就没有函数调用,当然也就没有软件设计。那么堆栈有什么特殊的属性呢?其实,堆栈的属性主要表现在下面两个方面: (1)堆栈的数据是先入后出 (2)堆栈的长度取决于栈顶的高度 那么,作为连续内存类型的堆栈应该怎... 阅读全文
posted @ 2015-11-10 15:38 acodewarrior 阅读(367) 评论(0) 推荐(0)
摘要: 这里的线性结构实际上指的就是连续内存的意思,只不过使用“线性”这个词显得比较专业而已。前面一篇博客介绍了现象结构的处理方法,那么在这个基础之上我们是不是添加一些属性形成一种新的数据结构类型呢?答案是肯定的,队列便是其中的一种。 队列的性质很简单: (1)队列有头部和尾部 (2)队列从尾部压入数据 ... 阅读全文
posted @ 2015-11-10 15:37 acodewarrior 阅读(314) 评论(0) 推荐(0)
摘要: 我们知道,在内存中的空间都是连续的。也就是说,0x00000001下面的地址必然是0x00000002。所以,空间上是不会出现地址的突变的。那什么数据结构类型是连续内部空间呢,其实就是数组,当然也可以是堆。数组有很多优势,它可以在一段连续空间内保存相同类型的数据,并且对这些数据进行管理。所以从这个... 阅读全文
posted @ 2015-11-10 15:36 acodewarrior 阅读(253) 评论(0) 推荐(0)
摘要: 堆排序是另外一种常用的递归排序。因为堆排序有着优秀的排序性能,所以在软件设计中也经常使用。堆排序有着属于自己的特殊性质,和二叉平衡树基本是一致的。打一个比方说,处于大堆中的每一个数据都必须满足这样一个特性: (1)每一个array[n] 不小于array[2*n] (2)每一个array[n]不小... 阅读全文
posted @ 2015-11-10 15:35 acodewarrior 阅读(215) 评论(0) 推荐(0)
摘要: 前面一篇博客提到的快速排序是排序算法中的一种经典算法。和快速排序一样,合并排序是另外一种经常使用的排序算法。那么合并排序算法有什么不同呢?关键之处就体现在这个合并上面。 合并算法的基本步骤如下所示: 1)把0~length-1的数组分成左数组和右数组 2)对左数组和右数组进行迭代排序 3)将左数组和... 阅读全文
posted @ 2015-11-10 15:33 acodewarrior 阅读(646) 评论(0) 推荐(0)
摘要: 快速排序是编程中经常使用到的一种排序方法。可是很多朋友对快速排序有畏难情绪,认为快速排序使用到了递归,是一种非常复杂的程序,其实未必如此。只要我们使用好了方法,就可以自己实现快速排序。 首先,我们复习一下,快速排序的基本步骤是什么: 1、 判断输入参数的合法性 2、把数组的第一个数据作为比较的原点... 阅读全文
posted @ 2015-11-10 15:32 acodewarrior 阅读(196) 评论(0) 推荐(0)
摘要: 在上面一篇博客当中,我们发现普通查找和排序查找的性能差别很大。作为一个100万的数据,如果使用普通的查找方法,那么每一个数据查找平均下来就要几十万次,那么二分法的查找呢,20多次就可以搞定。这中间的差别是非常明显的。既然排序有这么好的效果,那么这篇博客中,我们就对排序算做一个总结。 按照我个人的理... 阅读全文
posted @ 2015-11-10 15:31 acodewarrior 阅读(262) 评论(0) 推荐(0)
摘要: 无论是数据库,还是普通的ERP系统,查找功能数据处理的一个基本功能。数据查找并不复杂,但是如何实现数据又快又好地查找呢?前人在实践中积累的一些方法,值得我们好好学些一下。我们假定查找的数据唯一存在,数组中没有重复的数据存在。 (1) 普通的数据查找 设想有一个1M的数据,我们如何在里面找到我们想要... 阅读全文
posted @ 2015-11-10 15:29 acodewarrior 阅读(436) 评论(0) 推荐(0)
摘要: 内存是程序运行的基础。所有正在运行的代码都保存在内存里面。内存需要处理各种各样的数据,包括键盘的数据、鼠标的数据、usb的数据、串口的数据、摄像头的数据,那么这些数据经过程序的处理之后,就要进行输出到串口、屏幕、usb等。 内存只有一个,但是程序里面的空间有很多种。但是内存中的数据类型只有几种,比... 阅读全文
posted @ 2015-11-10 15:27 acodewarrior 阅读(188) 评论(0) 推荐(0)
摘要: 看过我前面博客的朋友都清楚,函数调用主要依靠ebp和esp的堆栈互动来实现的。那么递归呢,最主要的特色就是函数自己调用自己。如果一个函数调用的是自己本身,那么这个函数就是递归函数。 我们可以看一下普通函数的调用怎么样的。试想如果函数A调用了函数B,函数B又调用了函数C,那么在堆栈中的数据是怎么保存... 阅读全文
posted @ 2015-11-10 15:26 acodewarrior 阅读(840) 评论(0) 推荐(0)
上一页 1 ··· 7 8 9 10 11 12 13 下一页

导航