
算法
止语---
这个作者很懒,什么都没留下…
展开
-
红黑树(一)之 原理和算法详细介绍
出处:http://www.cnblogs.com/skywang12345/p/3245399.html概要目录1 红黑树的介绍2 红黑树的应用3 红黑树的时间复杂度和相关证明4 红黑树的基本操作(一) 左旋和右旋5 红黑树的基本操作(二) 添加6 红黑树的基本操作(三) 删除 作者:Sky Wang 于 201转载 2016-07-02 09:17:12 · 528 阅读 · 0 评论 -
二叉查找树(一)之 C语言的实现
二叉查找树(一)之 图文解析 和 C语言的实现 概要 本章先对二叉树的相关理论知识进行介绍,然后给出C语言的详细实现。关于二叉树的学习,需要说明的是:它并不难,不仅不难,而且它非常简单。初次接触树的时候,我也觉得它似乎很难;而之所产生这种感觉主要是由于二叉树有一大堆陌生的概念、性质等内容。而当我真正的实现了二叉树再回过头来看它的相关概念和性质的时候,觉得原来它是转载 2016-07-02 11:36:01 · 1258 阅读 · 0 评论 -
分治法求解最大子数组问题
最大子数组问题求解将数组A分成两部分,A[left...mid]和A[mid+1..right]两部分,求解最大子数组之和包含了三种可能的情况:1.完全位于子数组A[left...mid]中,因此low2.完全位于子数组A[lmid+1...high]中,因此mid+13.跨越了中点,因此ow如图所示原创 2016-06-09 21:34:28 · 1135 阅读 · 0 评论 -
C语言学习之时钟函数clock()函数
// nomial.cpp : Defines the entry point for the console application.//多项式求解//计时函数//clock():从捕捉程序开始运行到clock()函数被调用所耗费的时间,这个时间单位是//clock tick,即”时钟打点“,常数CLK_TCK:机器时钟每秒所走的时钟打点数//包含头文件//fx = a+原创 2017-03-25 10:19:47 · 11265 阅读 · 0 评论 -
归并排序
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。初始记录有 n 个元素,则可以看成是 n 个子序列,每个子序列的长度为 1 ,然后两两归并,得到n/2个长度为2或者1的有序子序列,再两两归并,如此重复得到一个长度为n的有序序列,因此是一个先“归”再“并”的过程,如图所示: 归...原创 2016-09-04 10:18:01 · 332 阅读 · 0 评论 -
快速排序详解
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。快速排序的关键是枢轴量的选取,其原理是选择一个枢轴量对记录进行比较,使小于枢轴量的调整到数组的左边,大于枢轴量的调整到数组的右边。即该方法的基本思想可描述为:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边...原创 2016-09-04 14:54:28 · 707 阅读 · 0 评论 -
堆排序
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。堆排序是利用堆的特性对记录序列进行排序的一种排序方法。即小顶堆:父结点的值小于左右孩子结点的值,大顶堆的相反假设我们要排序的序列是{50,10,90,30,70,40,80,60,20}堆排序分为两个步骤:1.构造大顶堆(或者小原创 2016-09-03 11:44:52 · 1342 阅读 · 0 评论 -
最长递增子序列
问题给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱)。例如:给定一个长度为6的数组A{5, 6, 7, 1, 2, 8},则其最长的单调递增子序列为{5,6,7,8},长度为4.解法1:最长公共子序列法这个问题可以转换为最长公共子序列问题。如例子中的数组A{5,6, 7, 1, 2, 8},则我们排序该数组得到数组A‘{1, 2,原创 2016-09-06 09:06:54 · 360 阅读 · 0 评论 -
查找算法总结
只要打开电脑,就会涉及查找技术。如硬盘中文件搜索,浏览器中的搜索“关键字key”等,无论是数据库,还是普通的ERP系统,查找功能数据处理的一个基本,同时也是一个非常重要的功能。所有这些需要被查找数据的集合,统称为“查找表”。数据查找并不复杂,但是如何实现数据又快又好地查找呢?前人在实践中积累的一些方法,值得我们好好学些一下。我们假定查找的数据唯一存在,数组中没有重复的数据存在。 我们原创 2016-09-01 15:09:29 · 598 阅读 · 0 评论 -
散列表
随笔 - 141 文章 - 2 评论 - 295《算法导论》读书笔记之第11章 散列表摘要: 本章介绍了散列表(hash table)的概念、散列函数的设计及散列冲突的处理。散列表类似与字典的目录,查找的元素都有一个key与之对应,在实践当中,散列技术的效率是很高的,合理的设计散函数和冲突处理方法,可以使得在散列表中查找一个元素的期转载 2016-07-02 16:30:00 · 761 阅读 · 0 评论 -
二叉查找树(二)之 C++的实现
二叉查找树(二)之 C++的实现 概要上一章介绍了"二叉查找树的相关理论知识,并通过C语言实现了二叉查找树"。这一章给出二叉查找树的C++版本。这里不再对树的相关概念进行介绍,若遇到不明白的概念,可以在上一章查找。目录1. 二叉树查找树2. 二叉查找树的C++实现3. 二叉查找树的C++实现(完整源码)4. 二叉查找树的C++测试程序转载请注明出处:转载 2016-07-02 11:37:13 · 572 阅读 · 0 评论 -
AVL树(二)之 C++的实现
AVL树(二)之 C++的实现 概要上一章通过C语言实现了AVL树,本章将介绍AVL树的C++版本,算法与C语言版本的一样。目录1. AVL树的介绍2. AVL树的C++实现转载请注明出处:http://www.cnblogs.com/skywang12345/p/3577360.html更多内容: 数据结构与算法系列 目录 (01)转载 2016-07-02 11:35:01 · 611 阅读 · 0 评论 -
红黑树(三)之 C++的实现
概要前面分别介绍红黑树的理论知识和红黑树的C语言实现。本章是红黑树的C++实现,若读者对红黑树的理论知识不熟悉,建立先学习红黑树的理论知识,再来学习本章。目录1. 红黑树的介绍2. 红黑树的C++实现(代码说明)3. 红黑树的C++实现(完整源码)4. 红黑树的C++测试程序转载请注明出处:http://www.cnblogs.com/skywang1234转载 2016-07-02 11:29:48 · 600 阅读 · 0 评论 -
红黑树(二)之 C语言的实现
红黑树(二)之 C语言的实现 概要红黑树在日常的使用中比较常用,例如Java的TreeMap和TreeSet,C++的STL,以及Linux内核中都有用到。之前写过一篇文章专门介绍红黑树的理论知识,本文将给出红黑数的C语言的实现代码,后序章节再分别给出C++和Java版本的实现。还是那句话,三种实现原理相同,择其一了解即可;若文章有错误或不足的地方,望不吝指出!目录转载 2016-07-02 10:57:17 · 620 阅读 · 0 评论 -
十大排序算法
随笔-25 文章-11 评论-293 十大经典排序算法0、排序算法说明0.1 排序的定义对一序列对象根据某个关键字进行排序。0.2 术语说明稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在内存中完成;外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;时...转载 2018-04-01 07:11:34 · 1570 阅读 · 0 评论