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