排序:
默认
按更新时间
按访问量

数据结构与算法复习——电网考试

计算机算法必须具备【可移植性、确定性、有穷性】三个特性。 从逻辑上可以把数据结构分为【线性结构、非线性结构】两大类。 若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用【顺序表】存储方式最节省时间。 若某线性表最常用的操作是在最后一个元素之后插入一个元素和删除第...

2018-08-23 10:05:25

阅读数:37

评论数:0

Java面试宝典——希尔排序+堆排序

package demos.order; /** * @author wyl * @time 2018年7月12日下午1:43:43 * 希尔排序:即缩小增量排序 * 基本原理: * 先将待排序的数组元素分成多个子序列,使得每个子序列的元素个属性相对较少, * 然后对各个子序列进...

2018-07-12 14:22:35

阅读数:46

评论数:0

Java面试宝典——选择排序+插入排序+冒泡排序+快速排序+希尔排序

package demos.order; /** * @author wyl * @time 2018年7月9日下午8:30:07 * 选择排序: * 对于给定的一组记录,经过第一轮比较后得到最小的记录, * 然后将该记录与第一个记录的位置进行交换; * 依次比较,直到进行比较...

2018-07-10 08:12:33

阅读数:25

评论数:0

Java面试宝典——求二叉树中结点的最大距离

结点的距离:是指这两个结点之间边的个数。一般而言,对二叉树的操作通过递归方法比较容易实现。求最大距离的思想如下:首先,求左子树距根结点的最大距离,记为leftMaxDistance; 其次,求右子树距根结点的最大距离,记为rightMaxDistance; 那么二叉树中结点的最大距离maxDi...

2018-07-09 08:47:19

阅读数:12

评论数:0

Java面试宝典——如何实现二叉排序树

二叉排序树,又称二叉查找树,它或者是一颗空树,或者是具有以下性质的二叉树:①如果左子树不空,那么左子树上所有结点的值均小于它的根结点的值; ②如果右子树不空,那么右子树上所有结点的值均大于它的根结点的值; ③左、右子树也分别为二叉排序树package binarytree; /** * @...

2018-07-06 16:58:07

阅读数:11

评论数:0

Java面试宝典——如何用两个栈模拟队列操作

假设使用栈A与栈B模拟队列Q,A为插入栈,B为弹出栈,以实现队列Q。在假设A和B都为空,可以认为栈A提供入队列的功能,栈B提供出队列的功能。要入队,入栈A即可,而弹出队列则需要分两种情况考虑:①若栈B不为空,则直接弹出栈B的数据;②若栈B为空,则依次弹出栈A的数据,放入栈B中,再弹出栈B的数据。p...

2018-07-06 10:42:31

阅读数:12

评论数:0

Java面试宝典——栈与队列

栈与队列是在程序设计中被广泛使用的两种重要的线性数据结构,都是在一个特定范围的存储单元中存储的数据。这些数据都可以重新被取出使用,与线性表相比,他们的插入和删除都受到更多的约束和限制,因此又称为“限定性的线性表结构”。栈:后进先出LIFO队列:先进先出FIFO栈的两种实现方式①用数组的方式实现栈p...

2018-07-06 10:27:13

阅读数:30

评论数:0

Java面试宝典——寻找单链表的中间结点

/** * 找单链表的中间结点 * ①用两个指针同时从头开始遍历 * ②一个快指针一次走两步,慢指针一次走一步 * ③快指针先到链表尾部,而慢指针则恰好到链表中部 * 快指针到达尾部时,当链表长度为奇数时,慢指针指向的即是链表中间指针; * 当链表长度为偶数时,慢指针指...

2018-07-04 19:36:45

阅读数:26

评论数:0

Java面试宝典——如何从链表中删除重复的元素

如何从链表中删除重复数据,最易想到的方法就是遍历链表,把遍历到的值存储到一个HashTable中,在遍历过程中,若当前访问的值在HashTable中已经存在,则说明这个数据是重复的,因此可以删除。这种方法的优点是:时间复杂度较低                 缺点是:在遍历过程中需要额外的存储空...

2018-07-04 17:50:38

阅读数:25

评论数:0

Java面试宝典——如何实现单链表的增删操作

链表增加结点(把新增加的结点放到链表尾部)删除链表中的结点计算链表的长度通过插入排序,实现对链表的排序package linkedlist; /** * @author wyl * @time 2018年7月4日下午4:01:54 */ public class MyLinkedList {...

2018-07-04 17:06:43

阅读数:12

评论数:0

数据结构与算法——复习总结

数据结构与算法

2018-06-03 10:52:24

阅读数:379

评论数:0

二叉平衡树AVL——Java实现

AVL树中任何节点的两个子树的高度最大差别为1。 AVL树的查找、插入和删除在平均和最坏情况下都是O(logn)。如果在AVL树中插入或删除节点后,使得高度之差大于1。此时,AVL树的平衡状态就被破坏,它就不再是一棵二叉树;为了让它重新维持在一个平衡状态,就需要对其进行旋转处理。学AVL树,重点的...

2018-05-17 16:29:07

阅读数:15

评论数:0

二叉查找树--删除结点——参考学习

二叉树查找=--删除节点(JAVA实现)

2018-05-17 14:24:09

阅读数:182

评论数:0

二叉查找树BST——Java实现

树的基本知识二叉树的知识二叉查找树平衡二叉树红黑树B树、B_树、B+树

2018-05-16 14:06:41

阅读数:73

评论数:0

有序数组的二分查找---查找元素第一次和最后一次出现的位置

package searching; public class BinSearch_first_last { public static void main(String[] args) { // TODO Auto-generated method stub int[] a={3,...

2018-05-16 13:18:06

阅读数:213

评论数:0

有序数组的二分查找---查找元素第一次和最后一次出现的位置及元素存储

package searching; public class MyBinSearch { public static void main(String[] args) { int[] a={3,5,10,10,10,13,13,19,23}; System.out.print...

2018-05-16 12:36:02

阅读数:96

评论数:0

有序数组的二分查找--Java实现

二分查找又称折半查找,它是一种效率较高的查找方法。1、折半查找的算法思想是将数列按有序化(递增或递减)排序,查找过程采用跳跃方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找空间缩小一半。他可以明显缩小比较...

2018-05-16 09:40:59

阅读数:210

评论数:0

堆的定义

定义:当一颗二叉树的每个结点都大于等于它的两个子结点时,它被成为堆有序。相应地,在堆有序的二叉树中,每个结点都小于等于它的父结点(如果有的话).命题:根结点是堆有序的二叉树中的最大节点。...

2018-05-15 14:41:34

阅读数:275

评论数:0

快速排序

1、快速排序:实现简单,适用于各种不同的输入数据且在一般应用中比其他排序算法要快得多。快速排序是一种分治的排序算法。它将一个数组分成两个子数组,将两部分独立排序。2、归并排序和快速排序是互补的。归并排序:将数组分成两个子数组分别排序,并将有序的子数组归并以将整个数组排序;快速排序:当两个子数组都有...

2018-05-15 11:11:50

阅读数:21

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭