数据结构与算法
文章平均质量分 85
Monster丶Xu
这个作者很懒,什么都没留下…
展开
-
经典Top-K问题最优解决办法以及C++代码实现
问题描述: Top-K问题是一个十分经典的问题,一般有以下两种方式来描述问题:在10亿的数字里,找出其中最大的100个数;或者在一个包含n个整数的数组中,找出最大的100个数。 前边两种问题描述稍有区别,但都是说的Top-K问题,前一种描述方式是说这里也许没有足够的空间存储大量的数字或其他东西,我们最好可以在一边输入数据,一边求出结果,而不需要存储数据;后一种说法则表示可以存储数据,这...原创 2018-04-02 18:57:34 · 7666 阅读 · 1 评论 -
单向链表判环系列问题及C++实现
问题描述: 关于单向链表判环,有一系列问题,首先 1、给定一个单向链表,判别链表中是否存在环路? 2、如果存在环路,怎么知道环路的长度? 3、如果存在环路,链表中环的入口点在哪儿? ...原创 2018-04-04 11:35:07 · 418 阅读 · 0 评论 -
十种常见排序算法的思想、应用场景、C++代码实现及时间效率直观对比
前言: 写在这篇博客前面,最近发现自己做事学东西远没有以前的踏实,往往学过之后很快就忘记,包括基础的排序算法,虽然看过几遍,但是却没有真正掌握,到了突然需要自己抛开书本手写的时候,发现自己对它们其实挺陌生的。所以希望借写这篇博客的机会,让自己好好复习一下基本的排序算法,也希望自己从现在开始能做到学东西像之前一样踏实。这篇博客中包含的排序算法主要有:冒泡排序,插入排序,希尔排序,选择排...原创 2018-05-01 22:19:23 · 7233 阅读 · 4 评论 -
交叉字符串问题、判断字符串s3是不是由字符串s1和s2交叉组合而成
前言 题目:交叉字符串问题,给出三个字符串s1,s2,s3,判断s3是否可以由s1和s2两个字符串经过交叉组合而成,组合过程不能改变字符在s1,s2字符串中的原本顺序。例: s1=”aabcc” s2=”dbbca” s3=”aadbbcbcac”或者s3=”aadbbbaccc” 给了两种s3的情况,第一种情况下答案是yes,第二种情况下答案是no,因为找不到任何...原创 2018-05-29 10:23:38 · 2709 阅读 · 1 评论 -
C++实现递归,非递归遍历二叉树(前序,中序,后序)
初学二叉树那会儿,始终掌握不好二叉树的遍历方法,更认为非递归遍历晦涩难懂没有掌握的意义。实际上非递归的遍历方法很有用处,由于每次递归都需要将函数的信息入栈,当递归层数太深很容易就导致栈溢出,所以这个时候就必须用到非递归遍历二叉树了。而且,当看懂非递归遍历后,你会发现,其实非递归也很简单。我们知道,要想处理二叉树,离不开其遍历方式。遍历二叉树有三种方式,前序遍历,中序遍历,后序遍历,每种...原创 2018-08-25 17:36:34 · 3971 阅读 · 3 评论