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

红黑树删除

红黑树的删除和搜索二叉树的有些类似,但是也有很大的不同,主要的就是,红黑树删除以后会破坏红黑树的性质,需要就行调整。

2017-08-01 09:32:14

阅读数:164

评论数:0

红黑树插入

一、什么是红黑树 红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。 它是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)。后来,在1978年被 ...

2017-07-30 20:47:46

阅读数:144

评论数:0

二叉搜索树

一、什么是二叉搜索树          二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于等于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于等于它的根结...

2017-07-30 11:25:53

阅读数:143

评论数:0

求解最长递增子序列的长度

一,问题描述 给定一个序列,求解它的最长 递增 子序列 的长度。比如: arr[] = {3,1,4,1,5,9,2,6,5}   的最长递增子序列长度为4。即为:1,4,5,9   二,算法分析 有两种方式来求解,一种是转化为LCS问题。即,首先对数组排序,将排序后的结果存储在辅助数组中...

2017-07-23 22:39:14

阅读数:230

评论数:0

N的阶乘末尾有多少个0

问题:N的阶乘(N!)中的末尾有多少个0?      例如:N = 5,N! = 120.末尾有1个0.   分析:想到这个问题,有人可能第一反应就是现求出N!,然后再根据求出的结果,最后得出N!的末尾有多少个0。但是转念一想,会不会溢出,等等。      其实...

2017-07-17 16:56:19

阅读数:430

评论数:0

前缀、中缀、后缀表达式

它们都是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀同理。 举例: (3 + 4) × 5 - 6 就是中缀表达式 - × + 3 4 5 6 前缀表达式 3 4 + 5 × 6 ...

2017-05-11 15:09:08

阅读数:229

评论数:0

树的高度和深度

用到树的数据结构时,经常会考虑树的高度和深度,但是lz总是搞混了,总虽然比较简单,就是个定义,记住就行了,但是因为长时间总是弄错,所以写一篇博文,加深一下印象 1、树的深度   树的深度可以这样理解,计算一个节点的深度,从根节点算起(记住从1开始计数,而不是0,程序员的通病在这不好使),到该节点所...

2017-05-03 09:49:44

阅读数:1864

评论数:2

找带环单向链表的环入口

题目:一个链表中包含环,请找出该链表的环的入口结点。 这是一个在面笔试中问烂了的问题,虽然以前也做过,也知道怎么做,但是总是想推导出具体的数学公式,这样才具有 说服力,今天又重新温习了一下,做了一下数学公式的推导,然后做一下总结; 1、做此类题首先得判断单链表 是否有环,当然这个题目已经告诉...

2017-04-10 21:27:26

阅读数:254

评论数:0

排序算法之快速排序

基本思想: 1)选择一个基准元素,通常选择第一个元素或者最后一个元素, 2)通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的 元素值比基准值大。 3)此时基准元素在其排好序后的正确位置 4)然后分别对这两部分记录用同样的方法继续进行排序,...

2016-12-15 20:50:36

阅读数:162

评论数:0

重建二叉树

题目   输入某二叉树的前序遍历和中序遍历,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含有重复的数字。   例如,前序遍历序列:{1,2,4,7,3,5,6,8},中序遍历序列:{4,7,2,1,5,3,8,6} 分析 分析前序遍历和中序遍历可知,前序遍历的第一个元素必定是...

2016-12-13 21:33:05

阅读数:203

评论数:0

通过金矿模型介绍动态规划

对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划。本文力求通俗易懂,无异性,不让读者感到迷惑,引导读者去思考,所以如果你在阅读中发现有不通顺的地方,让...

2016-11-25 21:59:02

阅读数:237

评论数:0

排序算法之堆排序 Heap Sort

堆排序是一种选择排序,其时间复杂度为O(nlogn)。堆的定义  n个元素的序列{k1,k2,…,kn}当且仅当满足下列关系之一时,称之为堆。  情形1:ki <= k2i 且ki <= k2i+1 (最小化堆或小顶堆)  情形2:ki >= k2i 且ki >= k2i+...

2016-11-17 21:39:26

阅读数:173

评论数:0

排序算法之希尔排序

希尔排序来源于直接插入排序,简单一点的说,直接插入排序是与紧挨自己的元素比较大小,而希尔排序加大了比较的间隔,从而与直接插入排序相比减少了交换的次数。 希尔排序的基本思想是: 把记录按步长 h分组,对每组记录采用直接插入排序方法进行排序。 随着步长逐渐减小,所分成的组包含的记录越来越多,...

2016-11-16 15:12:25

阅读数:122

评论数:0

排序算法之插入排序

插入排序是基于比较的排序。 对于这类排序,就有两种基本的操作:①比较操作; ②交换操作 其中,对于交换操作,可以优化成移动操作,即不直接进行两个元素的交换,还是用一个枢轴元素(tmp)将当前元素先保存起来,然后执行移动操作,待确定了最终位置后,再将当前元素放入合适的位置。(下面的插入排序就用到...

2016-11-16 08:59:24

阅读数:164

评论数:0

排序算法之选择排序

选择排序作为冒泡排序的改进,交换次数从n的平方降为n。不过整体的时间复杂度还是n得平方 (1)从待排序序列中,找到关键字最小的元素,记录下最下元素的位置; (2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换; (3)从余下的 N - 1 个元素中,找出关键字最...

2016-11-09 17:03:55

阅读数:134

评论数:0

排序算法之冒泡排序

冒泡非常形象,就是需要排序的数据像气泡一样,一个一个的冒上来,如果是升序,那么冒上来的就是最大的,降序就是最小的。  冒泡排序是非常容易理解和实现,,以从小到大排序举例: 设数组长度为N。 1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。 2.这样对数组的第0个数据...

2016-11-08 21:04:50

阅读数:151

评论数:0

10进制转二进制

package com.company; import java.util.ArrayList; import java.util.List; public class Main { /* 循环判断的方法 */ public List t2b(int num)...

2016-11-01 20:17:22

阅读数:235

评论数:0

归并排序

归并排序的计算复杂度要比冒泡,选择,插入要快的多,假设有N个数据,归并排序是需要把数组不断的进行二分,一直分到不能继续查分为止,所以需要拆分的次数为log2(N),即拆分成log2(N)组,又因为在每一组排序需要花费的次数是N,所以总共的运算复杂度为(o)Nlog2(N) public cla...

2016-10-13 08:31:25

阅读数:143

评论数:0

算法的力量----李开复

算法的力量 2006年5月 李开复      算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门,就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实,大家被这些公司误...

2016-09-29 20:27:59

阅读数:227

评论数:0

单链表的存储方式及实现(java语言描述)

顺序存储虽然是一种很有用途的存储结构,但也有很多局限性:      (1)若要为线性表扩充存储空间,则需重新创建一个地址连续的更大的存储空间,并把原有的数据元素都复制到新的存储空间中;      (2)因为顺序存储要求逻辑上相邻的数据元素,在物理存储位置上也是相邻,这就使得增删的数据元素会引起...

2016-06-25 21:29:30

阅读数:2143

评论数:0

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