数据结构与算法分析
jasnet_u
这个作者很懒,什么都没留下…
展开
-
数据结构:二叉查找树的api设计及其java代码实现
关于二叉树的一些基本概念二叉树:二叉树就是度不超过2的树(每个结点最多有两个子结点)满二叉树:一个二叉树,如果每一层的结点数都达到最大值,则这个二叉树就是满二叉树完全二叉树:叶结点只能出现在最下层和此下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树,即如果树不满则要求左满右不满,是为完全二叉树我们分析了二叉树结点的特性后,不难设计出二叉树的结点类 。 private class Node { private K key;//键 .原创 2020-08-09 07:35:30 · 545 阅读 · 0 评论 -
数据结构:顺序表、链表及其java代码实现
本篇我们介绍下数据结构中的顺序表、链表的基础概念,以及它们各自的java代码实现。一、顺序表1.1 什么是顺序表顺序表和链表都是属于线性表。顺序表,顾名思义所有元素物理上都是顺序存储,类似于数组。1.2 顺序表的api设计 (基于数组)类名:SequenceList构造方法:SequenceList(int capacity)//指定容量成员方法: public void clear(); 置空顺序表 public boolean isEmpty(); 判断表是否为空...原创 2020-08-09 06:43:47 · 854 阅读 · 1 评论 -
栈和队列的api设计及代码实现
栈和队列都是数据结构中最常见的结构,本篇我们使用java代码的方式实现栈和队列这两种数据结构。一、栈1、栈的特点栈的特点是先入后出,这是因为栈的存取数据入口只有一个(用一个头指针实现)。故先入栈的元素放入栈底部,后入栈的元素放到栈顶部。向栈中存入一个元素的操作叫做压栈(push),从栈顶中取出一个元素的操作叫做弹栈(pop)。2、栈的api设计类名:Stack<T> (物理上基于链表)构造方法: Stack()成员方法:public void push(T t) 向原创 2020-06-27 13:39:47 · 438 阅读 · 0 评论 -
希尔排序、快速排序、归并排序、堆排序
1、希尔排序package com.tingcream.alg.sort; /** * 希尔排序 : 分组+插入排序 */public class Shell { /** * 1、对整个数组按步长h进行分组 * h的值初始值可这样得出 * int h=1; * while(h<a.length/2){ * h=2*h+1; * } * 2、对每个分组进...原创 2020-06-27 12:01:34 · 719 阅读 · 0 评论 -
算法分析和常见的排序算法
算法分析:研究算法的最终目的就是如何花更少的时间,如何使用更少的内存去完成相同的需求。有关算法时间耗时分析,我们称之为时间复杂度分析,有关算法的空间耗时分析,我们称之为算法的空间复杂度分析算法的时间复杂度分析事情分析法1、算法采用的策略和方案2、编译产生的代码质量3、问题出入的规模4、机器的执行指令速度由此可见,抛开这些与硬件、软件有关的因素,一个程序的运行时间取决于算法和问题输入的规模。如果算法固定了,那么该算法执行的时间就只和问题输入的规模有关了。场景的算法时间复杂度函数:.原创 2020-06-27 11:06:24 · 374 阅读 · 0 评论