随笔分类 -  算法

摘要:前面的几篇文章分别总结了:顺序查找、二分查找、索引查找、二叉排序树。这一篇文章要总结的是五大查找的最后一个:哈希查找(也称为散列查找)。提起哈希,我的第一印象就是java中的Hashtable类,它是由 key/value 的键值对组成的集合,它就是应用了哈希技术。 那什么是哈希查找呢?在弄清楚什么 阅读全文
posted @ 2018-01-18 02:30 nnngu 阅读(15663) 评论(1) 推荐(7) 编辑
摘要:上一篇总结了索引查找,这一篇要总结的是二叉排序树(Binary Sort Tree),又称为二叉查找树(Binary Search Tree) ,即BSTree。 构造一棵二叉排序树的目的,其实并不是为了排序,而是为了提高查找和插入删除的效率。 什么是二叉排序树呢?二叉排序树具有以下几个特点。 (1 阅读全文
posted @ 2018-01-16 06:05 nnngu 阅读(9887) 评论(0) 推荐(3) 编辑
摘要:上一篇总结了二分查找,这一篇要总结的是索引查找。 关于索引,我们很容易地联想到数据库中的索引,建立了索引,可以大大提高数据库的查询速度。 索引查找又称为分块查找,是一种介于顺序查找和二分查找之间的一种查找方法,索引查找的基本思想是:首先查找索引表,可用二分查找或顺序查找,然后在确定的块中进行顺序查找 阅读全文
posted @ 2018-01-15 22:47 nnngu 阅读(10219) 评论(0) 推荐(1) 编辑
摘要:二分查找属于顺序表查找,二分查找也称为折半查找。二分查找的时间复杂度为O(log2n) 1、二分查找的定义 什么是二分查找呢?二分查找的基本思想是:在有序表中,取中间元素作为比较对象,若给定值与中间元素相等,则查找成功;若给定值小于中间元素,则在中间元素的左半区继续查找;若给定值大于中间元素,则在中 阅读全文
posted @ 2018-01-15 04:42 nnngu 阅读(2328) 评论(0) 推荐(0) 编辑
摘要:这一篇要介绍的是算法中的查找算法。查找在我们生活中无处不在,比如查公交,查机票,查酒店等等。 首先看一下查找的分类。如下图: 那么这一篇要总结的是顺序表中的顺序查找。 什么是顺序查找呢?顺序查找就是遍历整个列表,逐个元素与给定值比较,若某个元素和给定值相等,则查找成功。如果直到最后一个元素和给定值比 阅读全文
posted @ 2018-01-15 03:29 nnngu 阅读(6633) 评论(0) 推荐(2) 编辑
摘要:上一篇总结了直接插入排序和希尔排序,这一篇要总结的是归并排序,这也是七大排序的最后一种排序算法。 首先来看一下归并排序(Merge Sort) 的基本原理。它的原理是假设初始序列有n个元素,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2个长度为2或1的有序子序列;再两两 阅读全文
posted @ 2018-01-15 00:46 nnngu 阅读(946) 评论(0) 推荐(2) 编辑
摘要:上一篇总结了直接选择排序和堆排序,这一篇要总结的是插入排序中的直接插入排序和希尔排序,我们主要从以下几点进行总结。 1、直接插入排序及算法实现 2、希尔排序及算法实现 3、直接插入排序PK希尔排序 1、直接插入排序及算法实现 什么是直接插入排序呢?直接插入排序的基本思想是:每次从无序序列中取出第一个 阅读全文
posted @ 2018-01-14 21:55 nnngu 阅读(830) 评论(0) 推荐(0) 编辑
摘要:上一篇总结了交换排序的冒泡排序和快速排序。这一篇要总结的是选择排序,选择排序分为直接选择排序和堆排序,主要从以下几点进行总结。 1、直接选择排序及算法实现 2、堆排序及算法实现 1、直接选择排序及算法实现 直接选择排序(Straight Select Sort) 是一种简单的排序方法,它的基本思想是 阅读全文
posted @ 2018-01-14 06:07 nnngu 阅读(685) 评论(0) 推荐(0) 编辑
摘要:排序是我们生活中经常会面对的问题。同学们做操时会按照从矮到高排列;老师查看上课出勤情况时,会按学生学号顺序点名;高考录取时,会按成绩总分降序依次录取等。排序是数据处理中经常使用的一种重要的运算,它在我们的程序开发中承担着非常重要的角色。 排序分为以下四类共七种排序方法: 交换排序: ① 冒泡排序 ② 阅读全文
posted @ 2018-01-14 01:55 nnngu 阅读(1724) 评论(0) 推荐(1) 编辑