摘要:
数据存储在计算机内存中,数据存储于内存时,决定了数据顺序和位置关系的就是“数据结构”。数据结构能决定数据的顺序和位置关系,选择合适的数据结构可以提供内存的利用率。 1、电话簿的数据结构-从上往下顺序添加 假设有1个电话簿,每当得到了新的电话号码就从上往下的顺序记录在电话簿上面。 姓名 电话号码 张三 阅读全文
摘要:
1、了解输入数据的量和运行时间的关系 使用相同的算法,输入数据的量不同,运行时间也会不同。比如对10个数字排序和对1000000个数字排序,很容易想到就是后者运行时间更长。实际上会长多少呢?后者是前者的100倍,还是1000000倍?不仅需要理解不同算法在运行时间上的区别,也要了解根据输入数据量的大 阅读全文
摘要:
能够解决排序问题的算法不止选择排序一个。当有多个算法都能解决同一个问题时,应该如何进行选择?在算法的评判上,考量的标准也不相同。 例如简单的算法对于人来说易理解,也容易写成程序,而在运行过程中不需要消耗太多空间资源的算法,就十分适合内存小的计算机。 一般来说,我们最重视的是算法的运行时间,即从输入数 阅读全文
摘要:
计算机擅长高速执行一些基本命令,但无法执行复杂的命令。“基本命令”指的是“做加法”或者“在指定的内存地址上保存数据”等。 计算机是以这些基本命令的组合为基础运行的,面对复杂的操作,也是通过搭配组合这些基本命令来应对的。比如对n个数字进行排序对计算机就是复杂的操作,如何设计算法来解决这个排序问题,相当 阅读全文
摘要:
算法就是计算或者解决问题的步骤。可以想象成食谱,要做出特定的料理,就需要遵循上面的食谱步骤。同样,如果想用计算机解决特定问题,就需要遵循算法。特定的问题很多,比如“将随意排列的数字按从小到大的排序重新排列”、“寻找出发点到目的地的最短路径”等等。 食谱和算法的最大区别就是算法是严密的。食谱上经常会出 阅读全文
摘要:
堆栈最早是由Alan M.Turing9(艾伦.图灵)于1946年提出的,当时是为了解决子程序的回调和返回。栈是一种后进先出的数据结构,它只能在一端进行删除和插入操作。比如一个盒子的直径只能放一个球,依次放入2、1、3号小球。如果需要拿出2号球就得先取出3号球,再取出1号球,最后才能取出2号球。 栈 阅读全文