01 2019 档案
数据结构与算法之链表(LinkedList)——简单实现
摘要:这一定要mark一下。虽然链表的实现很简单,且本次只实现了一个方法。但关键的是例子:单向链表的反转。这是当年我去H公司面试时,面试官出的的题目,而当时竟然卡壳了。现在回想起来,还是自己的基本功不扎实,代码写的太少。所以现在趁闲暇之余,补课补起来。 阅读全文
posted @ 2019-01-22 15:06 Burkut 阅读(631) 评论(0) 推荐(0)
数据结构与算法之Stack(栈)——重新实现
摘要:之前发过一篇stack的实现,是采用dart内置的List类并固定长度数组实现的。这里重新实现一版,重复利用List类内置特性和方法。实现更为简洁。 阅读全文
posted @ 2019-01-15 16:57 Burkut 阅读(774) 评论(0) 推荐(0)
数据结构与算法之Stack(栈)的应用——用stack实现一个计算器-/bin/calc.dart
摘要:计算器的bin/calc.dart 可执行代码: 阅读全文
posted @ 2019-01-15 16:53 Burkut 阅读(428) 评论(0) 推荐(0)
数据结构与算法之Stack(栈)的应用——用stack实现一个计算器——in dart
摘要:本文用stack实现了一个计算器,支持括号、小数、负数。代码比较简单,没加什么注释。实际使用时,读取用户在stdin的输入,然后计算。若格式错误,会抛出异常。 在实际计算过程中,实际分为三步: 消除输入的空格; 表达式预处理和预计算,这一步将表达式字符串解析为数字、操作符和括号。如果是括号的话,在预 阅读全文
posted @ 2019-01-15 16:49 Burkut 阅读(921) 评论(0) 推荐(0)
数据结构与算法之Stack(栈)的应用——in dart
摘要:参考教科书上的一个应用例子,用栈来分析一行输入中的括号brackets是否匹配。用stdin读取用户输入,并输出检查结果。exit 退出。 注意这行代码: 阅读全文
posted @ 2019-01-11 23:45 Burkut 阅读(587) 评论(0) 推荐(0)
数据结构与算法之Stack(栈)——in dart
摘要:用dart 语言实现一个简单的stack(栈)。栈的内部用List实现。 阅读全文
posted @ 2019-01-11 18:25 Burkut 阅读(943) 评论(0) 推荐(0)
数据结构与算法之排序(3)插入排序 ——in dart
摘要:插入排序的思想比冒泡、选择要复杂,效率也比前两者更高。插入排序算法中运用了分治、逆向冒泡等思想,假设i之前的都是排好序的,i之后的都是待比较并排序的,然后逐次逆向向前比较,若小于前值,则将前值循环依次后移(等于该值向前冒泡,但减少了交换次数),最后在合适的位置插入用来比较的值。采用两层循环,第一层循 阅读全文
posted @ 2019-01-10 20:51 Burkut 阅读(249) 评论(0) 推荐(0)
数据结构与算法之排序(2)选择排序 ——in dart
摘要:选择排序的算法复杂度与冒泡排序类似,其比较的时间复杂度仍然为O(N2),但减少了交换次数,交换的复杂度为O(N),相对冒泡排序提升很多。算法的核心思想是每次选出一个最小的,然后与本轮循环中的第一个进行比较,如果需要则进行交换。 阅读全文
posted @ 2019-01-10 16:43 Burkut 阅读(611) 评论(0) 推荐(0)
数据结构与算法之排序(1)冒泡排序 ——in dart
摘要:最经典的入门排序算法,冒泡排序,dart语言实现。数组仍然采用随机生成的数组,使用dart内置的List 的generate方法,排序前后分别打印出数组,以观察效果。 阅读全文
posted @ 2019-01-10 14:51 Burkut 阅读(720) 评论(0) 推荐(0)
数据结构与算法之有序数组(2)——in dart
摘要:本文比第一篇,采用了类实现。增加了运算符重载等功能。本来有序数组是不能修改某个位置的值的,因为这样会打破数组的有序性;但为了演示,保留了修改的方法,但为此增加了排序。 阅读全文
posted @ 2019-01-08 18:45 Burkut 阅读(279) 评论(0) 推荐(0)
数据结构与算法之数组(1)——in dart
摘要:这是用dart语言实现的数组,因为dart内置List,且面向对象,本代码故意没有使用类和内置的List的部分特性。为了保证运行效果,采用随机数进行增删改查。 阅读全文
posted @ 2019-01-07 15:48 Burkut 阅读(479) 评论(0) 推荐(0)