文章分类 - 算法和数据结构
摘要:从头开始两个挨个比较,将大的挪到后面,再跟下一个比较,挪到最后下次不参与比较。 package demo4; import java.util.Arrays; //冒泡排序 public class BubbleSort { public static void main(String[] args
阅读全文
摘要:时间复杂度和空间复杂度概述 如何衡量一个算法的优劣 1、事后统计(跑一下看看用多长时间。不可行,环境影响很大) 2、事前分析估算(不准确) 时间复杂度(算法执行所需要的时间,一般都是说这个) 一般情况下,算法中的基本操作语句的重复执行次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n
阅读全文
摘要:在一个方法(函数)的内部调用该方法(函数)本身的编程方式. package demo3; public class TestRecursive { public static void main(String[] args) { print(3); } private static void pri
阅读全文
摘要:通过任何节点可以找到他的上一个节点和下一个节点 package demo2; //双向循环链表 public class DoubleNode { // 上一个节点 DoubleNode pre = this; // 下一个节点 DoubleNode next = this; // 数据 Objec
阅读全文
摘要:把单链表的最后一个的下一个指向第一个 package demo2; //循环链表 public class LoopNode { // 节点内容 Object data; // 下一个节点 LoopNode next=this; public LoopNode(Object data) { this
阅读全文
摘要:每条数据记录下条记录的位置 package demo2; //单链表 public class Node { // 节点内容 Object data; // 下一个节点 Node next; public Node(Object data) { this.data = data; } // 为节点追
阅读全文
摘要:队列的特点 :先进先出 package demo2; //队列 public class MyQueue { Object[] elements; public MyQueue() { elements = new Object[0]; } // 入队 public void add(Object
阅读全文
摘要:栈 先进后出(可以想象为手枪弹夹) 最后放入的元素为栈顶元素 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个
阅读全文
摘要:数组是一种典型的顺序存储结构,他在内存中按照顺序存储的方式存储 数组的基本使用 数组创建的两种方法 1.int[] arr=new int[3];//3为数组的长度,int为数组的类型 2.int[] arr1=new int[]{1,3,5,6,8};//大括号中为数组的元素 public cla
阅读全文
摘要:算法的定义 是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。(解题的思路) 算法的特性 输入(为算法提供零到多个输入) 输入(每个算法至少有一个输出) 有穷性(算法在有限的步骤中可以执行出结果) 确定性(在执行算法时一个输入对应一个输出) 可
阅读全文
摘要:概述 数据结构概述 算法概述 线性结构 数组 栈 队列 单链表 循环链表 双链表 递归 排序算法 算法概述 树结构 哈希表 图结构
阅读全文
摘要:什么是数据结构 数据结构是指相互之间存在一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。 (数据结构 数据和数据之间的关系) 数据的存储结构 顺序存储结构:把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的,数组就是顺序存储结构的典型代表。 (排队买票) 链式
阅读全文