新年的前十天做了比较有意义的事情就是坚持每天写博客,明天就开始期末考试了,所以等假期再继续学习。 把昨天提到的S.bottom简化之后又改了栈的链表。代码如下(已折叠):#include#includetypedef struct _node{ int num; struct _nod...
分类:
编程语言 时间:
2016-01-10 18:34:06
阅读次数:
236
一直想做一个链表实现的栈,今天终于实现了。确实比数组要难多了,打了很久,很长时间花在了想象上(指针调试比较复杂。。)但是链表实现有一个最大的好处,就是动态分配内存,所以一般不会出现栈顶溢出的问题。值得一提的是代码中比昨天的多了一个build函数。建立一个新栈。那么init函数,还是初始化一个栈。昨天...
分类:
编程语言 时间:
2016-01-10 00:12:25
阅读次数:
240
算法分析与设计复习2016年初,研一上学期期末考试前,复习并总结算法分析与设计科目的内容。复习过程参照《算法导论》中文第2版,同时参照PPT,章节划分根据PPT内容概要:第一章 概述第二章 插入排序&分治策略第三章 复杂度分析第四章 堆与堆排序第五章 快速排序第六章 线性时间排序第一章 概述算法的应...
分类:
编程语言 时间:
2016-01-09 23:05:22
阅读次数:
647
今天傍晚完成了Code Academy上Python的所有练习,感觉Python的原力在我身体里流淌......下面要学习一些进阶的东西。之前Zhi哥跟我说Python比较简单,我还不太信。其实早在四年前就想学Python了,买了书,但一直都没有学。就像算法一样...十几年前就买了算法导论...没有...
分类:
编程语言 时间:
2016-01-09 07:32:46
阅读次数:
193
栈在暑假的时候接触过了,当时还写了个计算器,用的中缀表达式后缀表达式的栈操作。 http://www.cnblogs.com/itlqs/p/4749998.html 今天按照算法导论上的讲解规范了一下代码。主要是栈的初始化、判断空栈、入栈、出栈、遍历栈。#include#define MA...
分类:
编程语言 时间:
2016-01-08 23:33:00
阅读次数:
222
今天想做测试各个排序算法运行时间比较的程序,来对这几天学的排序算法小结一下。所以我先生成了1000000个1~150之间的随机数存到文件里。然后做了一个测试运行时间的程序。想看一下结构。但是结果效果并不太好。实践中,自己做的qsort函数和mergesort函数并没有理想中的那么快。结果是这样:(....
分类:
编程语言 时间:
2016-01-07 01:12:19
阅读次数:
182
今天的这个比较神奇,是一个线性复杂度的排序算法O(n),算法导论在这一部分先证明了比较排序的复杂度下界是nlgn,所以基数排序不是基于比较的排序。 其实这种比较方法我们应该都接触过。假设输入的数都是三位以下的数(当然其他位数也可以,类比一下,这里就假设是三位数、两位数、一位数),那么只需要大致3n....
分类:
编程语言 时间:
2016-01-06 00:11:29
阅读次数:
228
今天上最后一节史纲课,老师说不管什么学科,最重要的就是思想。我觉得很有道理。 好吧,不扯了。原谅我看书选择了速读策略,中间有很多感觉目前还很难看懂,以后有时间再细细学习。把略过去的在这里记一下。一、矩阵乘法算法。复杂度从n^3优化到了n^2.81 (数字比较神奇)。因为还没学线性代数,所以以后学了....
分类:
编程语言 时间:
2016-01-05 00:13:06
阅读次数:
275
序高速排序(QuickSort)也是一种排序算法,对包括n个数组的输入数组。最坏情况执行时间为O(n^2)。尽管这个最坏情况执行时间比較差。可是高速排序一般是用于排序的最佳有用选择。这是由于其平均性能相当好。期望的执行时间为O(nlgn)。且O(nlgn)中隐含的常数因子非常小。另外...
分类:
编程语言 时间:
2016-01-04 10:13:30
阅读次数:
251
顶着期末复习的压力,还是在今天过完之前看完了一个算法——最大子数组问题。《算法导论》中引入这个问题是通过股票的购买与出售,经过问题转换(转换的过程比较简单,但是不好想),将前一天的当天的股票差价重新表示出来,即转为了一个最大子数组的问题 ,具体内容是: 13, -3, -25, 20, -3, .....
分类:
编程语言 时间:
2016-01-04 01:21:38
阅读次数:
247