摘要: 算法评测算法评测——复杂度记法刚才说过,线性查找的计算量为O(n),二分查找的复杂度为O(log n)。大多情况下,算法的复杂度可以这样定量评测。算法评测一般使用复杂度记法(Order记法)。复杂度记法表示的含义是,当算法的输入大小为n时,大致需要这么多的计算量。花费时间与n的大小无关,能在固定时间内完成的处理,其复杂度为O(1)。例如从散列中查找数据,虽然要计算散列函数,但散列函数计算不依赖于n,所以复杂度为O(1)。而散列搜索中,给定键的值(几乎)是唯一的,因此通过键搜索值的处理也是O(1)(也依赖于具体实现)。因此,散列搜索整体复杂度为O(1)[1]。如前所见,线性查找要从开头开始查找, 阅读全文
posted @ 2011-08-18 17:20 博文视点(北京)官方博客 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 算法和数据结构算法和数据结构——千丝万缕的联系纵观各种算法书籍,大多都是将算法和数据结构作为一个整体来讲述。数据结构就是数组、树结构等存储或表现对象数据的结构。将算法和数据结构作为整体讲述,是因为必须依照算法中的常用操作选择数据结构。例如,事先将数据保存在适当的树形结构中,大多数情况下搜索会变得很简单,可以降低复杂度。第11课中已经看到,RDBMS的索引的实现采用了B+树这种树结构。B+树是个空间上适合外部存储的树结构。利用B+树保存索引,不仅能减少查找所需的操作步骤,还能将磁盘读取次数降至最低。因此,RDBMS的索引一般采用B+树,同时使用适合该数据结构的算法进行查找、插入、排序等操作。所以 阅读全文
posted @ 2011-08-18 17:09 博文视点(北京)官方博客 阅读(179) 评论(0) 推荐(0) 编辑