- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 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
原创 爱奇艺算法实习生面试题
给一个多边形,寻找一条线,把这个多边形分成面积相等的两部分?思路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
原创 贪婪算法(活动安排问题)
#includeint recursive_activity_select(int * s,int *f,int k,int n);int main(void){ int s[12]={0,1,3,0,5,3,5,6,8,8,2,12}; int f[12]={0,4,5,6,7,9,9,10,11,12,14,16};
2016-12-11 11:16:25
657
原创 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
原创 矩阵连乘最优化问题
#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
原创 区间树
/**********************interval_tree.h************************/ /*头文件*/typedef struct{int low_endpoint;int high_endpoint;}inte;typedef struct node{inte i
2016-11-24 23:24:02
446
原创 顺序查找树
/**********************OST.h************************/ /*头文件*/typedef struct node{char color;int key;struct node * p;struct node *left;struct node * right
2016-11-24 00:00:43
631
原创 BST(C语言)
/**************************************************** BST.h ***************************************************/// 定义节点typedef struct node{ struct node * parent;stru
2016-11-10 19:24:08
905
原创 反转单链表(C)
#include #include #include typedef struct list{ int key; struct list *next;} node;void print(node * );node* reverse(node* );int main(void){
2016-10-26 09:45:40
431
原创 FuzzBuzz (C语言)
写一个程序输出字符串代表数1到n,如果数能被3整除,输出"Fizz",能被5整除"Buzz",既能被3也能被5整除输出"FizzBuzz"。比如:n = 15,Return:[ "1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz"
2016-10-17 21:48:28
1246
翻译 基数排序(RadixSortC语言)
网上很多基数排序的代码,设计的不够好,需要人为的输入各个位。在GeeksforGeeks上copy下来,自己作了一点修改。代码写的清晰明了,结构简单,值得学习。
2016-10-15 00:52:06
1132
原创 快速排序(随机化版本)
随机化版本的快速排序相比于之前的普通排序,唯一的区别就是,随机的选取数组中的任何一个数作为主元素,而不像普通排序那样,数组一旦给定,主元素便确定了;与前篇文章普通排序相比,对代码进行了改进,增加了随机数生成函数,以及交换数组元素的函数,代码结构相对来说更加清晰了。
2016-10-12 12:23:01
517
原创 快速排序(C性能测试)
快速排序虽然时间复杂度和合并排序与堆排序算法一样;但相比于合并排序,快速排序是原地排序,作者用200w的随机元素构成的数组进行性能测试,发现快速排序只需要0.4s,而合并排序需要0.5s左右,性能上是优于合并排序的;同样的,堆排序需要1s左右。快速排序是一种优秀的排序算法,应用也是非常的广泛。
2016-10-11 20:35:59
557
原创 基于最大堆的最大优先队列的实现(C语言)
有两个地方需要关注:1.通过定义具有外部链接的的变量来记录优先队列的大小 2.两次使用while(getchar()!='\n') continue这个结构来处理缓存中的字符。
2016-10-10 17:36:39
1461
原创 最大堆排序(性能测试)
同样是对200w个随机数的数组,使用合并排序只需要0.5s左右,堆排序需要1s左右;虽然两种算法的时间复杂度都是O(nlgn),但堆排序系数更大,操作更复杂,所以时间花费更多
2016-10-09 23:28:28
663
原创 合并排序(Merge Sort)C 实现(简单性能测试)
和前一篇博文插入排序算法对比,同样是对10w个元素的数组排序,合并排序所用时间在ms级别,而插入排序所用时间在10s左右,这两个算法的运行效率差别非常巨大。自己可以简单的测试一下!
2016-10-05 16:59:19
1303
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人