随笔分类 -  数据结构与算法

数据结构与算法---堆排序(Heap sort)
摘要:堆排序基本介绍 1、堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。 2、堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆, 注意 : 没有要求结点的左孩子的值和右孩子的值 阅读全文

posted @ 2019-07-18 23:41 wanbf 阅读(910) 评论(1) 推荐(0) 编辑

数据结构与算法---线索化二叉树(Threaded BinaryTree)
摘要:先看一个问题 将数列 {1, 3, 6, 8, 10, 14 } 构建成一颗二叉树 问题分析: 线索二叉树基本介绍 1、n个结点的二叉链表中含有n+1 【公式 2n-(n-1)=n+1】 个空指针域。利用二叉链表中的空指针域,存放指向该结点在某种遍历次序下的前驱和后继结点的指针(这种附加的指针称为" 阅读全文

posted @ 2019-07-15 23:44 wanbf 阅读(530) 评论(0) 推荐(0) 编辑

数据结构与算法---树结构(Tree structure)
摘要:为什么需要树这种数据结构 数组存储方式的分析 优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。 缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低。 链式存储方式的分析 优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入 阅读全文

posted @ 2019-07-10 23:37 wanbf 阅读(1118) 评论(0) 推荐(0) 编辑

数据结构与算法---查找算法(Search Algorithm)
摘要:查找算法介绍 在java中,我们常用的查找有四种: 1)线性查找算法 示例: 有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值。 思路:将数列遍历匹配,就是用for循坏遍历,if匹配数据,找到下标值 阅读全文

posted @ 2019-07-07 12:52 wanbf 阅读(1075) 评论(0) 推荐(0) 编辑

数据结构与算法---排序算法(Sort Algorithm)
摘要:排序算法的介绍 排序也称排序算法 (Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。 排序的分类 1) 内部排序: 指将需要处理的所有数据都加载 到内部存储器(内存)中进行排序。 2) 外部排序法:数据量过大,无法全部加载到内 存中,需要借助外部存储(文件等)进行 排序 阅读全文

posted @ 2019-06-16 23:28 wanbf 阅读(687) 评论(0) 推荐(1) 编辑

数据结构与算法--八皇后问题(回溯算法)
摘要:八皇后问题介绍 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出: 在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 那么我们使用编程来算出有多少种摆法,这也是使 阅读全文

posted @ 2019-06-09 17:24 wanbf 阅读(411) 评论(0) 推荐(0) 编辑

数据结构与算法--递归(recursion)
摘要:递归的概念 简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。 递归调用机制 我列举两个小案例,来帮助大家理解递归 1、打印问题 2、阶乘问题 3、使用图解说明递归的调用机制 递归能解决什么样的问题 1、各种数学问题如: 8皇后问 阅读全文

posted @ 2019-06-09 15:28 wanbf 阅读(554) 评论(0) 推荐(0) 编辑

数据结构之链表(LinkedList)(三)
摘要:数据结构之链表(LinkedList)(二) 环形链表 顾名思义 环形列表是一个首尾相连的环形链表 示意图 循环链表的特点是无须增加存储量,仅对表的链接方式稍作改变,即可使得表处理更加方便灵活。 看一样著名的应用场景 我们就可以用环形单链表解决这个问题。 首先我们怎么构建一个环形链表 分析: 1. 阅读全文

posted @ 2019-06-05 23:18 wanbf 阅读(377) 评论(0) 推荐(0) 编辑

数据结构之链表(LinkedList)(二)
摘要:数据结构之链表(LinkedList)(一) 双链表 上一篇讲述了单链表是通过next 指向下一个节点,那么双链表就是指不止可以顺序指向下一个节点,还可以通过prior域逆序指向上一个节点 示意图: 那么怎么来实现双链表的增删改查操作呢。 分析: 1) 遍历 方和 单链表一样,只是可以向前,也可以向 阅读全文

posted @ 2019-06-03 22:31 wanbf 阅读(538) 评论(0) 推荐(0) 编辑

数据结构之链表(LinkedList)(一)
摘要:链表(Linked List)介绍 链表是有序的列表,但是它在内存中是存储如下 1)链表是以节点方式存储的,是链式存储 2)每个节点包含data域(value),next域,指向下一个节点 3)各个节点不一定连续存储,如上图 4)链表分 带头节点的链表和 不带头节点的链表,根据实际需求确定 单链表介 阅读全文

posted @ 2019-06-01 23:35 wanbf 阅读(1882) 评论(2) 推荐(1) 编辑

数据结构之队列(queue)
摘要:队列介绍 1.队列是一个有序列表,可以用数组或是链表来实现。 2.遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出。 应用场景 比如某某银行叫号系统: 数组模拟队列 队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队列的最 阅读全文

posted @ 2019-06-01 12:54 wanbf 阅读(898) 评论(0) 推荐(0) 编辑

你听过稀疏数组(sparseArray)吗?
摘要:稀疏数组(sparseArray) 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 1.记录数组一共有几行几列,有多少个不同的值 2.把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模 稀疏数组举例: 其中右 阅读全文

posted @ 2019-05-31 23:23 wanbf 阅读(468) 评论(0) 推荐(0) 编辑

数据结构简介
摘要:什么是数据结构? 关于“数据结构”一词的解释众多,比如维基百科中对于“数据结构”的定义是这样的:“数据结构是计算机中存储、组织数据的方式”。又如《数据结构与算法分析》中的解释:“数据结构是ADT(抽象数据类型 Abstract Data Type)的物理实现” 数据结构包括:线性结构和非线性结构。 阅读全文

posted @ 2019-05-31 22:04 wanbf 阅读(242) 评论(0) 推荐(0) 编辑

经典排序算法总结和比较
摘要:排序算法可以说是一项基本功,解决实际问题中经常遇到,针对实际数据的特点选择合适的排序算法可以使程序获得更高的效率,有时候排序的稳定性还是实际问题中必须考虑的,这篇博客对常见的排序算法进行整理,包括:插入排序、选择排序、冒泡排序、快速排序、堆排序、归并排序、希尔排序、二叉树排序、计数排序、桶排序、基数 阅读全文

posted @ 2019-04-06 16:18 wanbf 阅读(326) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示