![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
guan903853573
这个作者很懒,什么都没留下…
展开
-
数据结构与算法(十一)(常用的十大算法)
二分查找(非递归)package binarysearchnorecursion;public class BinarySearchNoRecur { public static void main(String[] args) { int[] arr = {1,3,8,10,11,67,100}; System.out.println(binaryS...原创 2019-11-16 11:50:02 · 327 阅读 · 0 评论 -
数据结构与算法(十)(图)
图1.基本概念介绍:图:需要表示多对多的关系时,使用图图中的重要概念:顶点(节点),边,路径,无向图,有向图,带权图(网)2.图的表示方式:二维数组(邻接矩阵)链表(与数组结合)(邻接表)3.图的创建与深度优先算法分析图的创建:使用邻接矩阵的方式创建图深度优先算法:a.访问初始节点A,并将A节点标记为已访问b.查找节点A的第一个邻接节点Bc.此时存在两种情况,B存在,继...原创 2019-11-15 10:41:30 · 121 阅读 · 0 评论 -
数据结构与算法(九)(树)
二叉排序树1.概念介绍:对于二叉排序树的任何一个非叶子节点,要求左子节点的值要小于当前节点,右子节点的值要大于当前节点2.代码实现插入和遍历package binarysorttree;public class BinarySortTree { public static void main(String[] args) { int[] arr = {7,3,10...原创 2019-11-07 11:30:32 · 163 阅读 · 0 评论 -
数据结构与算法(八)(树)
数组,链式,树结构的优缺点分析数组:通过下标访问元素速度快,但是如果检索某个值或者插入值会导致数组的整体移动,效率较低链式:插入数值或者删除数值效率较高,而在检索时效率较低树结构:提高数据读取,存储效率,既可以保障数据的检索速度,同时也可以保障数据的插入,删除,修改的速度关于树的一些概念节点根节点父节点子节点叶子节点:没有子节点的节点节点的权:节点值二叉树的前序,中序,后序遍...原创 2019-10-24 19:04:29 · 153 阅读 · 0 评论 -
数据结构与算法(七)(哈希表)
哈希表1.问题:有一个公司,每次来新的员工都要求将员工信息输入(id,name),并且可以遍历所有员工,要求不能使用数据库,插入和查询速度越快越好。此时我们应当想到使用散列表(哈希表)2.概念:是根据关键码值而直接进行访问的数据结构,也就说,它通过把关键码值映射到表中一个位置来访问记录,用来加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希表就是一个简易版redis,主要...原创 2019-10-22 16:40:07 · 144 阅读 · 0 评论 -
数据结构与算法(六)(查找算法)
线性查找1.代码实现package search;public class SeqSearch { public static void main(String[] args) { int[] arr = {101,100,99,33}; System.out.println(seqSearch(arr,110)); } public...原创 2019-10-19 11:59:13 · 103 阅读 · 0 评论 -
数据结构与算法(四)(排序算法基础)
排序算法简介1.概念:将一组数据,按照指定的顺序进行排列的过程2.分类:内部排序:将需要处理的数据加载到内存中进行排序外部排序:数据量过大,无法加载到内存中,需要借助外部存储3.常见排序算法(都属于内部排序)插入排序:直接插入排序,希尔排序选择排序:简单选择排序,堆排序交换排序:冒泡排序,快速排序归并排序基数排序算法时间复杂度1.概念:度量一个算法的执行时间2.分类:事...原创 2019-10-07 12:07:47 · 167 阅读 · 0 评论 -
数据结构与算法(三)(递归)
递归递归的调用机制1.概念简单来说,就是方法自己调用自己,每次调用时传入不同的变量2.案例解析package test;public class Test { public static void main(String[] args) { test(4); } public static void test(int n ){ ...原创 2019-10-04 14:53:57 · 129 阅读 · 0 评论 -
数据结构与算法(二)(栈)
栈1.简介栈是一个先进后出的有序列表,允许插入和删除一端叫做栈顶,另一端为固定端叫栈底2.应用场景子程序调用,递归调用,表达式的转换(中缀表达式转后缀表达式)与求值,二叉树的遍历,图形的深度优先搜索法3.用数组模拟栈package stack;public class ArraySatackDemo { public static void main(String[] ar...原创 2019-09-29 15:08:08 · 170 阅读 · 0 评论 -
单链表笔试题
遍历单链表并返回长度class Student{ public int student_id; public String student_name; public int student_age; public Student next; public Student(int student_id, String student_name, int s...原创 2019-09-25 15:51:07 · 191 阅读 · 0 评论 -
数据结构与算法(一)
线性结构与非线性结构线性结构1.概述元素数据之间存在一对一线性关系,分为两种不同的存储结构,顺序存储结构和链式存储结构顺序存储的线性表称为顺序表,顺序表中的元素在地址上是连续的。链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息2.常见的线性结构:数组,队列,链表,栈非线性结构1.常见非线性结构:二维数组,多维数组,广义表,树结构,...原创 2019-09-19 10:25:52 · 144 阅读 · 0 评论