算法学习
文章平均质量分 52
分享自己算法学习之路 希望和大家以前学习
共勉
jalen_zh
目前就职于国内某互联网大厂,后端开发工程师一枚,感谢关注,交流可以私信哦
展开
-
一组无序的整数找出出现次数大于一半的数字
在看一个讲算法的视频公开课里看到了这个题目,当时脑子里想到的第一个算法就是先排序然后进行遍历,具体的做法就是先将这组整数快速排序,然后在进行遍历,总的时间复杂度就是O(nlgn),但是实际上这并不是最优算法解原创 2017-03-05 14:23:35 · 1428 阅读 · 0 评论 -
C++ 快速排序算法
快速排序是一种很有效的排序算法,是一种不稳定的排序方法;在最坏情况下的复杂度为O(N^2),最好情况和平均情况下的复杂度均为O(NlgN),在所有的内部排序方法里面是最实用的一种,也是被称为最好的内部排序算法。 快排的实现基于分治法,基本思想就是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可以分别对这两部分利用递归记录继续进行排序原创 2017-03-15 20:29:25 · 452 阅读 · 0 评论 -
三角形内部线性插值方法
今天晚上刚做完网易游戏笔试题,有一道是让求插值,无奈不会,特意从晚上找到了方法问题:在三角形的三个顶点具有3个不同颜色,如何通过插值计算出三角形中每个点的颜色?应用实例:高洛德着色使用3个顶点的颜色进行线性插值,结果如下图:解决方案:显然,无论是线性插值还是双线性插值的都无法解决这个问题。而 使用重心坐标则可以很好的解决这个问题。简单的来说,重心坐标就是子三转载 2017-03-20 21:10:29 · 9459 阅读 · 0 评论 -
二叉树遍历算法实现
一、基本概念每个结点最多有两棵子树,左子树和右子树,次序不可以颠倒。性质:1、非空二叉树的第n层上至多有2^(n-1)个元素。2、深度为h的二叉树至多有2^h-1个结点。满二叉树:所有终端都在同一层次,且非终端结点的度数为2。在满二叉树中若其深度为h,则其所包含的结点数必为2^h-1。完全二叉树:除了最大的层次即成为一颗满转载 2017-03-22 20:59:45 · 365 阅读 · 0 评论 -
大数据量的算法面试题
第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法, 比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大 的几转载 2017-03-23 16:34:32 · 850 阅读 · 2 评论 -
编程之美 给定一个整数N,那么N的阶乘N!末尾有多少个0?
一开始我们拿到这个题目的时候,可能在想我们是不是需要把N!的结果算出了呢?那如果N的值很大,导致N!的结果溢出该怎么办呢?如果我们可以从“哪些数字相乘能得到10'这个角度来考虑,问题就变得简单的多了。实际上能被2整除的数出现的概率要比能被5整除的·数高很多,所以我们只需要求出5的个数就可以得到最后0的个数下面给出一种思路我觉得这种方法比较简单容易理解int ret=0;while(N)原创 2017-03-24 12:47:40 · 514 阅读 · 0 评论 -
鹰蛋问题解析之动态规划
一幢 100 层的大楼,给你两个鸡蛋。如果在第 n 层扔下鸡蛋,鸡蛋不碎,那么从第 n-1 层扔鸡蛋,都不碎。这两只鸡蛋一模一样,不碎的话可以扔无数次。最高从哪层楼扔下时鸡蛋不会碎?1. 如果有无数个蛋如果问题分为两问,第一问提出如果你鹰蛋有无数个,该如何求解?这个问题比较简单,只需要二分法就能在O(lgn)的次数内求解问题,问题的第二问是如果只有两个鹰蛋,该如何求解,我当转载 2017-03-25 18:41:41 · 1792 阅读 · 0 评论 -
笔试面试常考数据结构红黑树性质总结
红黑树一、定义红黑树是一种特定类型的二叉树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由RudolfBayer发明的,他称之为"对称二叉B树",它现代的名字是在LeoJ.Guibas和RobertSedgewick于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的,它可以在O(logn)时间内做查找,原创 2017-03-29 18:03:33 · 3435 阅读 · 0 评论 -
Fibonacci数列的递归与非递归实现算法详解
递归算法因为递归需要不断的调用自身,当n过大的时候,程序将会很慢效率不高,不推荐使用,关于递归实现算法,也很简单,很多教科书上都是这种解法。//递归算法long long Fibonacci(unsigned int n){ if (n == 0) return 0; if (n == 1) return 1; return Fibonacci(n - 1) + Fibonacc...原创 2017-05-06 17:52:59 · 2446 阅读 · 2 评论 -
寻找第k大数的N种解法
今天看算法分析是,看到一个这样的问题,就是在一堆数据中查找到第k个大的值。 名称是:设计一组N个数,确定其中第k个最大值,这是一个选择问题,当然,解决这个问题的方法很多,本人在网上搜索了一番,查找到以下的方式,决定很好,推荐给大家。 所谓“第(前)k大数问题”指的是在长度为n(n>=k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题。 解转载 2017-08-10 12:42:32 · 1056 阅读 · 0 评论