摘要: 1、选择排序 选择排序就是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换之; 选择排序的主要优点与数据移动有关。 如果某个元素位于正确的最终位置上,则它不会被移动。 选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对  阅读全文
posted @ 2020-03-02 22:46 kkzhang 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 1、冒泡排序 冒泡排序之所以叫冒泡排序,是因为它每一种元素都像小气泡一样根据自身大小一点一点往数组的一侧移动。 基本思想是假如需要排序的数组元素有n个,则进行n-1轮比较,第K轮比较中元素的比较次数为n-k次,算法的复杂度准确界为O(n2)。 算法步骤如下: 比较相邻的元素。如果第一个比第二个大,就 阅读全文
posted @ 2020-03-02 22:15 kkzhang 阅读(852) 评论(0) 推荐(0) 编辑
摘要: 1、排序 通常将数据元素称为记录。显然我们输入的是一个记录集合,排序输出的也是一个记录集合。可以将排序看成线性表的一种操作。 排序的依据是关键词之间的大小关系,对同一记录集合,针对不同的关键字进行排序,可以得到不同的序列。 2、影响排序算法性能的几个要素 1)时间性能;尽可能少的关键字比较次数和记录 阅读全文
posted @ 2020-03-02 22:08 kkzhang 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 0、前言 顺序表:一个一个挨个查找; 有序查找:二分查找方法; 散列表查找:记录的存储位置=F(关键字); 散列技术是在记录的存储位置和他的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。 查找时,根据这个确定的对应关系找到固定值key的映射f(key),若查找 阅读全文
posted @ 2020-03-02 17:40 kkzhang 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 0、为什么需要二叉排序树 1)数组存储方式: 优点:通过下标访问元素,速度快,对于有序数组,可以通过二分查找提高检索效率; 缺点:如果检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低; 2)链式存储结构: 优点:元素的插入删除效率高; 缺点:检索某个元素时,需要从头节点开始遍历。 3)树 阅读全文
posted @ 2020-03-02 16:48 kkzhang 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 1、索引 我们前面提到的几种高效查找方法都是基于有序的基础上的,但是实际上,很多数据集可能增长非常快。例如空间动态信息等,对于这样的查找表,我们若是保证记录全部按照当中某个关键字有序,其维护的时间代价非常高,所以这种数据通常是按照先后顺序存储。 数据结构的最终目的就是提高数据的处理速度,索引是为了加 阅读全文
posted @ 2020-03-02 12:59 kkzhang 阅读(608) 评论(0) 推荐(0) 编辑