数据结构和算法
CrownP
渣渣的自我救赎
展开
-
数据结构复习:时间复杂度、空间复杂度
1、算法(Algorithm) 定义: 一个有限指令集 接受一些输入(有些情况下不需要输入) 产生输出 一定在有限步骤后终止 每一条指令必须:有充分明确的目标,不可以有歧义;计算机能处理的范围之内 2、选择排序算法的伪码描述 伪码的特点就是很抽象,传数组或者链表都可以, 自定义的swap函数也可以不用而用宏。 3、什么是时间复杂度和空间复杂度? 1、空间...原创 2019-03-07 00:17:34 · 2180 阅读 · 0 评论 -
数据结构复习:堆栈
1、堆栈的抽象数据类型描述 堆栈(Stack):具有一定操作约束的线性表。只在一端(栈顶,Top)做插入、删除 插入数据:入栈(push) 删除数据:出栈(pop) 后入先出:Last In First Out(LIFO) 数据对象集:一个有0个或多个元素的有穷线性表 操作集:长度为MaxSize的堆栈S属于Stack,堆栈元素item属于ElementType Stack Creat...原创 2019-03-15 00:03:31 · 1484 阅读 · 0 评论 -
数据结构复习:队列
1、什么是队列? 队列(Queue):具有一定操作约束的线性表。只能在一端插入,而在另一端删除。 数据插入:入队列(AddQ) 数据删除:出队列(DeleteQ) 先来先服务 先进先出:FIFO 2、队列的抽象数据类型描述 类型名称:队列(Queue)数据对象集:一个有0个或多个元素的有穷线性表。操作集:长度为MaxSize的队列Q 属于Queue,队列元素item 属于El...原创 2019-03-15 00:44:03 · 951 阅读 · 0 评论 -
Java各种排序算法代码分析
Java 冒泡排序、堆排序、插入排序、归并操作、快速排序、希尔排序、选择排序。 package prms.utils.sort; import java.util.Arrays; /** * @ClassName: SortUtils * @Description: <p> 排序算法 工具类 </p> * @author edga...原创 2019-03-15 00:50:16 · 4229 阅读 · 0 评论 -
数据结构复习:解决最大子列和问题的四种算法来看时间复杂度优化的重要性
给定N个整数的序列{A1,A2,····,An},求函数 的值 即从A1到An的的这一连续的一个整数序列中,求出某一连续的一段子列的最大的和是多少。负数就返回0结束。 算法1 int maxSubseqSum1(int A[],int N) { int i,j,k; int ThisSum,MaxSum = 0; for( i = 0;...原创 2019-03-07 17:45:46 · 1022 阅读 · 0 评论 -
数据结构复习:线性表及其实现
一、概念 1、线性结构是数据结构里最基础也是最简单的一种数据结构类型,其中典型的一种叫“线性表”。 2、“线性表(Linear List)”:由同类型数据元素构成有序序列的线性结构 表中元素个数称为线性表的长度 线性表没有元素时,称为空表 表起始位置称表头,表结束位置称表尾 3、线性表的抽象数据类型描述: 类型名称:线性表(List) 数据对象集:线性表是 n(>=0)个元素构...原创 2019-03-13 16:33:07 · 1142 阅读 · 0 评论