算法
chenxl929
在校
展开
-
第5篇 优先队列
优先队列:删除最大的元素和插入元素。优先队列的使用和队列(删除最老的元素)以及栈(删除最新的元素)类似。1)基于二叉堆数据结构的一种优先队列的经典实现方法,用数组保存元素并按照一定条件排序,以实现高效地(对数级别)删除最大元素和插入元素操作。2)一种名为堆排序的重要排序算法来自于基于堆排序的优先队列的实现。问题:输入N个字符串,每个字符串都对应着一个整数,任务找到最大的(或者最小的)M个整数。解答:原创 2017-09-23 18:44:08 · 242 阅读 · 0 评论 -
第6篇 符号表
符号表符号表是一种存储键值对的数据结构,支持两种操作:插入(put),即将一组新的键值对存入表中;查找(get),即根据给定的键得到相应的值。1 API为了保证代码的一致性,简要说明具体实现中的几个设计决策:1)每个键只对应着一个值。2)当用例代码向表中存入键值对和表中已有的键(及关联的值)冲突时,新的值会替代旧的值。这些规则定义了关联数组的抽象形式。3)键不能为空。4)键不能关联着空值。这样做可以原创 2017-09-24 20:41:11 · 644 阅读 · 0 评论 -
第1篇 初级排序算法
1 排序算法的比较1)验证:无论数据的初始状态是什么,排序算法一定能成功吗?2)运行时间:基本操作的次数(包括比较和交换,或者是读写数组的次数)。3)额外的内存使用。4)数据类型。2 选择排序步骤:1)找到未排序数组中最小的元素。2)将该元素与未排序的元素的最小位置元素进行交换。特点:1)运行时间和输入无关。2)数据移动是最少的。(用了N次交换)3 插入排序步骤:1)选择未排序的第一张A与已排序倒序原创 2017-08-31 19:42:03 · 471 阅读 · 0 评论 -
第2篇 归并排序
归并排序归并思想:将两个有序的数组归并成一个更大的有序数组。优点:保证将任意长度N的数组排序所需时间和NlogN成正比。缺点:所需的额外空间和N成正比。1 原地归并的抽象方法所谓原地归并,既是将连个已经有序的子序列合并为一个序列。/* *需要额外的数组大小的空间 *主要是对四种情况的比较: *1.左半边用尽 *2.右半边用尽 *3.右半边当前元素小于当前元素 *4.右半边当前元素大于当前原创 2017-09-10 11:41:45 · 480 阅读 · 0 评论 -
第3篇 快速排序
The crux of the method is the partitioning process, which rearranges the array to make the following three conditions hold:■ The entry a[j] is in its final place in the array, for some j.■ No entry in原创 2017-09-10 11:43:06 · 357 阅读 · 0 评论 -
第4篇 堆排序
优先队列:删除最大的元素和插入元素。优先队列的使用和队列(删除最老的元素)以及栈(删除最新的元素)类似。1)基于二叉堆数据结构的一种优先队列的经典实现方法,用数组保存元素并按照一定条件排序,以实现高效地(对数级别)删除最大元素和插入元素操作。2)一种名为堆排序的重要排序算法来自于基于堆排序的优先队列的实现。问题:输入N个字符串,每个字符串都对应着一个整数,任务找到最大的(或者最小的)M个整数。解答:原创 2017-09-11 20:24:30 · 563 阅读 · 1 评论