
算法
文章平均质量分 61
MaxCliff
这个作者很懒,什么都没留下…
展开
-
爱奇艺算法实习生面试题
给一个多边形,寻找一条线,把这个多边形分成面积相等的两部分?思路1. 把这个多边形拆分成一个个小的三角形。2.从某一个三角形开始,从顶点连接到对边的中的点,再从中点连接到该条边对应的定点3.重复第二步工作。Python实现#coding:utf-8#多变形的顶点(顺时针方向按顺序给出)endPoints=[(0,0),(0,1),(1,1),(1,0)]def partitionPolygon(p...原创 2018-03-05 15:05:14 · 833 阅读 · 0 评论 -
合并链表
搜狐面试考官出的一个数据结构题,当时没写出来,回来花了一天写出来了。虽然比较基础,但是想临场写出来,还是有一定难度。原创 2017-08-11 13:12:45 · 453 阅读 · 0 评论 -
简单的遗传算法实例
这个例子,体现了遗传算法的一些概念,后续博客还会深入介绍这一重要算法。翻译 2017-07-23 17:19:13 · 1238 阅读 · 1 评论 -
LCS
#include void lcs_length(const int m,const int n ,int (*count)[n+1],char (*res)[n],const char * x,const char * y);int print_lcs(int a,int b,int n,char (*res)[n],char *y);int main(vo原创 2016-12-07 15:26:02 · 327 阅读 · 0 评论 -
矩阵连乘最优化问题
#include void print_optimal_parens(int n,int (*s)[n+1],int i,int j);void matrix_order_optimal(int * p,int n,int (*m)[n+1],int (*s)[n+1]);int main(void){ const int d_size=7;原创 2016-12-05 09:58:30 · 804 阅读 · 0 评论 -
合并排序(Merge Sort)C 实现(简单性能测试)
和前一篇博文插入排序算法对比,同样是对10w个元素的数组排序,合并排序所用时间在ms级别,而插入排序所用时间在10s左右,这两个算法的运行效率差别非常巨大。自己可以简单的测试一下!原创 2016-10-05 16:59:19 · 1303 阅读 · 0 评论 -
插入排序(性能的简单测试)
插入排序很简单,没什么好说的。主要注意下,测试算法性能的流程,分配内存,产生随机数,排序,调用time函数。。。原创 2016-10-04 22:19:31 · 454 阅读 · 0 评论 -
基数排序(RadixSortC语言)
网上很多基数排序的代码,设计的不够好,需要人为的输入各个位。在GeeksforGeeks上copy下来,自己作了一点修改。代码写的清晰明了,结构简单,值得学习。翻译 2016-10-15 00:52:06 · 1132 阅读 · 0 评论 -
计数排序(性能测试)
计数排序在数组元素个数n,与数组最大元素k,满足k=O(n)时,该算法是一种高效的非比较排序的线性算法。原创 2016-10-13 13:26:40 · 552 阅读 · 1 评论 -
快速排序(随机化版本)
随机化版本的快速排序相比于之前的普通排序,唯一的区别就是,随机的选取数组中的任何一个数作为主元素,而不像普通排序那样,数组一旦给定,主元素便确定了;与前篇文章普通排序相比,对代码进行了改进,增加了随机数生成函数,以及交换数组元素的函数,代码结构相对来说更加清晰了。原创 2016-10-12 12:23:01 · 517 阅读 · 0 评论 -
快速排序(C性能测试)
快速排序虽然时间复杂度和合并排序与堆排序算法一样;但相比于合并排序,快速排序是原地排序,作者用200w的随机元素构成的数组进行性能测试,发现快速排序只需要0.4s,而合并排序需要0.5s左右,性能上是优于合并排序的;同样的,堆排序需要1s左右。快速排序是一种优秀的排序算法,应用也是非常的广泛。原创 2016-10-11 20:35:59 · 557 阅读 · 0 评论 -
基于最大堆的最大优先队列的实现(C语言)
有两个地方需要关注:1.通过定义具有外部链接的的变量来记录优先队列的大小 2.两次使用while(getchar()!='\n') continue这个结构来处理缓存中的字符。原创 2016-10-10 17:36:39 · 1461 阅读 · 0 评论 -
最大堆排序(性能测试)
同样是对200w个随机数的数组,使用合并排序只需要0.5s左右,堆排序需要1s左右;虽然两种算法的时间复杂度都是O(nlgn),但堆排序系数更大,操作更复杂,所以时间花费更多原创 2016-10-09 23:28:28 · 663 阅读 · 0 评论 -
java,Python,JavaScript使用缓存技术计算斐波那契数列
//Java版本import java.util.*;public class CalculateFib{ static Map<Integer,Integer> m=new HashMap<Integer,Integer>(); public static int fib(int n){ if (n<3){ ...原创 2018-03-13 12:02:54 · 308 阅读 · 0 评论