算法

广义表的介绍及设计(C语言实现)

广义表的介绍及设计(C语言实现)1.简介数组可以存储不允许再分割的数据元素,如字符’X’,数字11,当然他也可以存储数组,二维数组就是一个例子,你可以理解二维数组的每一行的元素是一列中的对应元素的组合。广义表……

简述旋转卡壳

简述旋转卡壳1978年,M.I.Shamos'sPh.D.的论文"ComputationalGeometry"标志着计算机科学的这一领域的诞生。当时他发表成果的……

什么是虚树?

什么是虚树?当我们遇到一类频繁询问关键点信息的题目时,往往数据范围颇大,而对关键点总和有一定限制,此时我们可以建立虚树,将问题规模转化为关键点总和级别的。一、定义什么是虚树?当我们在树上有部分结点是无用的或用处不……

复数的概念和运算

复数的概念和运算复数的引入,追根求源,最初是为了求解没有实数根的二次方程。例如求解这个由实数组成的方程,显然没有实数根。所以复数集可以看成实数集合的一个自然扩充。首先引入一个“新数”i。使它满……

直接选择排序C/C++代码图文讲解

直接选择排序C/C++代码图文讲解直接选择排序就是遍历整个数组,每遍历一遍的目的是找出该数组中的最大数和最小数对应的下标,然后将最小数和数组的第一个数进行交换,最大数和数组的最后一个数进行交换,然后缩小范围再次遍历。(1)定义直接选择……

用C语言解答汉诺塔问题

用C语言解答汉诺塔问题汉诺塔相信很多人小时候都玩过这样的游戏,这是源于印度的古老传说,大家可千万不要小看这个游戏,里面体现了古人的大智慧,在这里我们能学到最直观的演示方法,本篇主要是针对汉诺塔的问题进行分析和代码展示。一、……

希尔排序算法实例详解

希尔排序算法实例详解1.复杂度与稳定性算法时间复杂度最坏情况:O(n^2)最好情况:O(n)平均情况:O(n^2) 稳定性:不稳定排序2.过程介绍希尔排序,又名递减增量排序算法,是一种非稳定的更高效的插……

什么是格雷码?

什么是格雷码?一、什么是格雷码?格雷码,又叫循环二进制码或反射二进制码,格雷码是我们在工程中常会遇到的一种编码方式,它的基本的特点就是任意两个相邻的代码只有一位二进制数不同,格雷码的基本特点就是任意两个相邻的代码只……

哈密顿图的应用

哈密顿图的应用哈密顿通路(回路)与哈密顿图(Hamilton图)通过图G的每个结点一次,且仅一次的通路(回路),就是哈密顿通路(回路)。下面总结四个定义,帮助大家理解。一、哈密顿图定义通过图中所有顶点一次且仅一次的……

手指树的基本结构

手指树的基本结构一、简介手指树(FingerTree)是一种纯函数式数据结构,由RalfHinze和RossPaterson提出。二、为什么需要手指树?在函数式编程中,列表是十分常见的数据类型。对于基于序列的操作,包……