随笔分类 -  数据结构与算法

摘要:查找是我们经常会碰到的问题,以前我做过一个这样的算法,在有序的数列(80万条左右),这批数据是根据维度由小到大排序的,寻找已知数据的位置,并且所相应的运算,由于这个算法要在嵌入式系统中做,如果一次在内存中载入80万条数据是不明智的。而且这个计算过程是每秒都要做一次,如果不在内存中载入数据时效性上又无 阅读全文
posted @ 2016-10-28 13:42 麦哈顿博士
摘要:排序法里比较出名的,具体的算法看下图: 这篇博客说的通俗易懂:http://blog.csdn.net/morewindows/article/details/6684558 这是快速排序的基础,用代码实现如下: void DiviedSort(int* arr_p,int start,int en 阅读全文
posted @ 2016-10-22 16:46 麦哈顿博士
摘要:1.字符串旋转: a b c d --> d c b a; 结合数据结构我用栈实现,因为这个过程就是进栈与出栈。但是如果单纯的字符串颠倒就不用这么麻烦直接首尾对调就可以了 2.复杂点"I am a engineer!" --> "engineer! a am I"这里是以单词为节点的颠倒,第一步是分 阅读全文
posted @ 2016-10-21 10:54 麦哈顿博士
摘要:方法不难,但是最近在看哈希表,队散列法有了一定的认识,突然觉得解决这个问题的方法认识应该提高, 首先分析问题,要统计一个字符串每个字符出现的次数,那么绝对是要遍历整个字符串,这个问题的难点在于怎么确认 当前字符是否在前面已经出现,不能取一个字符就与整个字符串一一对比,这样的时间复杂度就是O(n^2) 阅读全文
posted @ 2016-10-18 15:52 麦哈顿博士
摘要:队列是线性表的子类,其特点是只准队尾进,队头出,这个特点与实际生活中的排队一样,当然这里是 不准插队的,如图所示: 具体代码以及注解如下程序: 注意上述程序的结构图如下: 阅读全文
posted @ 2016-09-29 11:12 麦哈顿博士
摘要:栈的特点是先进后出也就是所谓的FILO,栈这种数据结构在函数中运用很多,在函数调用时,调用函数需要先将本身的数据保存 到内存空间中,而被函数的参数也需要从内存空间中读取出来,这两个过程就是一个进栈一个出栈,根据物理存储结构栈可以分为: 1、顺序栈,2、链表栈。 下面是用c实现的顺序栈 阅读全文
posted @ 2016-09-28 10:02 麦哈顿博士
摘要:现有M元,a个10元,b个5元,c个1元,寻找一种钱正好凑成m的组合。 两种方式实现:1、一种穷举法,2、可以利用取整取余更高效, 还有一种可以利用堆栈来实现,这个我想用c实现,但是目前只是想法没有具体代码,前2种代码如下: 阅读全文
posted @ 2016-09-27 16:38 麦哈顿博士