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

摘要:1. 数组中重复数字 2. 二维数组中的查找 阅读全文
posted @ 2019-05-14 14:38 薛定谔病态猫 阅读(248) 评论(0) 推荐(0)
摘要:简单选择排序简介 简单选择排序是一种选择排序。 选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。 简单排序处理流程 (1)从待排序序列中,找到关键字最小的元素; (2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换; (3)从余下 阅读全文
posted @ 2018-11-29 14:16 薛定谔病态猫 阅读(263) 评论(0) 推荐(0)
摘要:希尔排序简介 希尔(Shell)排序又称为缩小增量排序,它是一种插入排序。它是直接插入排序算法的一种威力加强版。 该方法因DL.Shell于1959年提出而得名。 希尔排序的基本思想是: 把记录按步长 gap 分组,对每组记录采用直接插入排序方法进行排序。随着步长逐渐减小,所分成的组包含的记录越来越 阅读全文
posted @ 2018-11-12 15:16 薛定谔病态猫 阅读(375) 评论(0) 推荐(0)
摘要:插入排序简介 直接插入排序是一种最简单的插入排序。 直接插入排序,每次将一个新数据插入到有序队列中的合适位置里。 插入排序:每一趟将一个待排序的记录,按照其关键字的大小插入到有序队列的合适位置里,知道全部插入完成。 假设有一组无序序列 R0, R1, ... , RN-1。 (1) 我们先将这个序列 阅读全文
posted @ 2018-11-07 19:43 薛定谔病态猫 阅读(164) 评论(0) 推荐(0)
摘要:快速排序简介 快速排序是一种交换排序。 快速排序由C. A. R. Hoare在1962年提出。 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分:分割点左边都是比它小的数,右边都是比它大的数。 然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成 阅读全文
posted @ 2018-11-06 17:12 薛定谔病态猫 阅读(283) 评论(0) 推荐(2)
摘要:什么是冒泡排序 冒泡排序是一种交换排序。 什么是交换排序呢? 交换排序:两两比较待排序的关键字,并交换不满足次序要求的那对数,直到整个表都满足次序要求为止。 算法思想 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就 阅读全文
posted @ 2018-11-05 20:58 薛定谔病态猫 阅读(259) 评论(0) 推荐(0)
摘要:1. Java中并发Queue种类与各自API特点及使用场景 2. Set集合详解 3. List集合详解 4. 栈的设计与实现 5. 栈的详细实现分析 6. Java集合Map详解 7. List、Set与Map的区别及联系 8. 二叉树的基本操作与实现 9. 完全二叉树与满二叉树 10. 平衡二 阅读全文
posted @ 2018-08-03 15:55 薛定谔病态猫 阅读(209) 评论(0) 推荐(0)
摘要:1. 剑指offer 2. Leetcode 题解 阅读全文
posted @ 2018-08-01 15:41 薛定谔病态猫 阅读(136) 评论(0) 推荐(0)
摘要:一、树的定义 树是由根结点和若干颗子树构成的。树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。父子关系在树的结点之间建立了一个层次结构。在这种层次结构中有一个结点具有特殊的地位,这个结点称为该树的根结点,或称为树根。 相关术语 节点的度:一个节点 阅读全文
posted @ 2018-03-06 17:13 薛定谔病态猫 阅读(236) 评论(0) 推荐(0)
摘要:1.约瑟夫环问题 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一 阅读全文
posted @ 2018-03-02 17:00 薛定谔病态猫 阅读(901) 评论(0) 推荐(0)
摘要:栈和队列 一、栈 1.栈的定义 栈又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元 阅读全文
posted @ 2018-02-28 14:37 薛定谔病态猫 阅读(268) 评论(0) 推荐(0)
摘要:一.什么是线性表 线性表是最基本、最简单、也是最常用的一种数据结构,它的定义是:由零个或多个数据元素组成的有限序列,线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是一种线 阅读全文
posted @ 2018-02-25 22:44 薛定谔病态猫 阅读(412) 评论(0) 推荐(0)