摘要: 抽象数据类型“映射”:ADT Map(映射Map) ADT Map 操作定义: Map():创建一个空映射,返回空映射对象; put(key, val):将key-val关联对加入映射中 ,如果key已存在,将val替换旧关联值; get(key):给定key,返回关联的数据值,如不 存在,则返回N 阅读全文
posted @ 2020-07-23 22:56 Yelush 阅读(286) 评论(0) 推荐(0)
摘要: 散列Hashing 散列是一种数据结构。由数据项的值来确定存放的位置。 散列表(哈希表)是一种数据集。散列的每一个存储位置称为一个槽,可用于存储数据,每个槽拥有唯一的名称。 散列函数:最简单的求余:h(item) = item % 11 按照散列函数h(item)为每个数据项计算存放的位置后,就可以 阅读全文
posted @ 2020-07-23 22:01 Yelush 阅读(690) 评论(0) 推荐(0)
摘要: 快速排序 思想:依据一个中值数据项,把数据表分成两半:小于中值的一半和大于中值的一半,然后把每部分分别进行快速排序(递归)。 其中递归条件: 基本结束条件:数据表仅有一个数据项 缩小规模:根据中值,将数据表分为两半,最好的情况是相等规模的两半 调用自身:将两半分别调用自身进行排序(排序基本操作在分裂 阅读全文
posted @ 2020-07-23 20:55 Yelush 阅读(282) 评论(0) 推荐(0)
摘要: 归并排序 算法处理思路:将数据表持续分裂成两半,对两半分别进行归并排序。可以用递归的思想解决。 其中,递归结束的基本条件是数据表仅有1个数据项。 缩小规模:将数据表持续分裂为相等的两半,规模减小为原来的1/2. 调用自身:将两半分别调用自身排序,然后将分别排好序的两半进行归并,得到排好序的数据表。 阅读全文
posted @ 2020-07-23 16:40 Yelush 阅读(156) 评论(0) 推荐(0)
摘要: 谢尔排序 以插入排序作为基础,插入排序在最好 情况为O(n),这种情况发生在列表已经是有序的情况下,实际上,列表越接近有序表,插入排序的比对次数越少。 因此,谢尔排序则将插入排序分为固定间隔的很多子列表,每个子列表都进行插入排序。 一般子列表的间隔从n/2开始。 谢尔排序的实质是带间隔的插入排序。 阅读全文
posted @ 2020-07-23 15:37 Yelush 阅读(286) 评论(0) 推荐(0)