算法
文章平均质量分 59
KusanoNEU
Pursue a Phd.
展开
-
Sequence Alignment
#include #include #include #include #include using namespace std;// Edit penalty: // gap penalty: theta// mismatch penalty: alphaint optimalAlignment(string s1, string s2, int theta, int al原创 2016-06-02 11:02:42 · 833 阅读 · 0 评论 -
RNA secondary structure(Dynamic Programming)
//// main.cpp// RNA//// Created by Longxiang Lyu on 6/1/16.// Copyright (c) 2016 Longxiang Lyu. All rights reserved.//#include #include #include using namespace std;bool complement(c原创 2016-06-02 06:01:40 · 885 阅读 · 0 评论 -
Knapsack problem I
#include #include #include #include #include using namespace std;// given n objects and a knapsack with capacity limit W// object i weigts wi > 0 and has value vi > 0// Goal: fill knapsack t原创 2016-06-01 11:33:19 · 395 阅读 · 0 评论 -
Weighted job scheduling
//// main.cpp// Weighted interval scheduling//// Created by Longxiang Lyu on 5/31/16.// Copyright (c) 2016 Longxiang Lyu. All rights reserved.//#include #include #include using namespa原创 2016-06-01 05:24:08 · 533 阅读 · 0 评论 -
Strassen's algorithm to compute matrix multiplication
//// main.cpp// Strassen//// Created by Longxiang Lyu on 5/24/16.// Copyright (c) 2016 Longxiang Lyu. All rights reserved.//#include #include #include #include #include using namespa原创 2016-05-25 03:54:36 · 641 阅读 · 0 评论 -
Karatsuba algorithm C++ implementation
//// main.cpp// multiply//// Created by Longxiang Lyu on 5/23/16.// Copyright (c) 2016 Leo Lyu. All rights reserved.//// the karatsuba's algorithm only needs O(n^log3) bit operation to do t原创 2016-05-24 07:32:32 · 3104 阅读 · 0 评论 -
Randomized quicksort
#include #include #include #include using namespace std;// QuickSort(List A)// if A size <= 1// return// pick A[i] from A as pivot// (L, M, R) <- partition-3way(A, i)// QuickSort(List L)/原创 2016-05-22 10:36:56 · 739 阅读 · 0 评论 -
Binary Search Tree implementation
#include #include #include #include using namespace std;struct Node{ int data; struct Node *left = nullptr; struct Node *right = nullptr; Node() = default; Node(int d, Node *l, Node *r)原创 2016-05-21 13:50:01 · 513 阅读 · 0 评论 -
closest pair of points(O(nlogn)) solution
#include #include #include #include #include using namespace std;// point class representing point in 2D planestruct Point{ int x; int y; Point() = default; Point(int xx, int yy) : x(xx)原创 2016-05-20 12:20:25 · 581 阅读 · 0 评论 -
closest pair of points(O(n*logn*logn)) solution
#include #include #include #include #include using namespace std;// point class representing point in 2D planestruct Point{ int x; int y; Point() = default; Point(int xx, int yy) : x(xx)原创 2016-05-20 11:46:07 · 485 阅读 · 0 评论 -
Inversion count implemented with merge sort
// inversion definition: for an array, if i a[j]#include #include #include #include using namespace std;int min(int a, int b){ return a < b ? a : b;}int merge(vector &arry, int start原创 2016-05-20 05:26:53 · 406 阅读 · 0 评论 -
Merge Sort (O(nlogn))
#include #include #include #include using namespace std;int min(int a, int b){ return a < b ? a : b;}void merge(vector &arry, int start, int mid, int end, vector &backup){ int i =原创 2016-05-20 04:01:32 · 429 阅读 · 0 评论 -
MST implementation with Kruskal and Boruvka algorithm
用C++分别实现了Kruskal和Boruvka算法计算MST其中Kruskal算法中对边的排序用的heapsort#include #include #include using namespace std;struct Edge{ int src; int dest; int weight; Edge() = default; Edge(int s, int d原创 2016-05-18 11:11:05 · 745 阅读 · 0 评论 -
Chaining Hash table
#include #include #include using namespace std;const int TABLE_SIZE = 51;template class LinkedHashEntry {private: int key; T value; LinkedHashEntry *next;public: LinkedHashEntry(int ke原创 2017-01-05 23:17:14 · 563 阅读 · 0 评论 -
Hirschberg's algorithm to find string alignment
// Based on Hirschberg's algorithm to find the best alignment for two strings.// This algorithm is proved to run in O(mn) time and O(m + n) space// reference:// https://en.wikipedia.org/wiki/Hirsch原创 2016-06-05 02:18:12 · 996 阅读 · 0 评论 -
Bellman-ford algorithm to find the shortest path
//// main.cpp// Demo//// Created by Longxiang Lyu on 8/9/16.// Copyright (c) 2016 Longxiang Lyu. All rights reserved.//#include #include #include #include #include class Edge;class原创 2016-08-10 10:15:49 · 743 阅读 · 0 评论 -
8 puzzle with A* algorithm
The main idea is from:http://www.cs.princeton.edu/courses/archive/spr10/cos226/assignments/8puzzle.htmlA* is used to find the best solution. The detail of A* could be found:http://web.mit.edu/原创 2016-12-10 21:23:48 · 2595 阅读 · 1 评论 -
vertex cover approximate algorithm
Reference:http://www.geeksforgeeks.org/vertex-cover-problem-set-1-introduction-approximate-algorithm-2/#include #include #include #include using namespace std;class Graph{private: in原创 2016-12-01 17:23:53 · 657 阅读 · 0 评论 -
3-coloring problem
#include #include #include using namespace std;bool isSafe(const vector> &graph, const vector &color, int v, int c){ for (int i = 0; i != graph.size(); ++i) if (graph[v][i] == 1 && color[i]原创 2016-12-03 18:16:16 · 698 阅读 · 0 评论 -
weighted Independent set on trees
This is solved by dynamic programming, the algorithm is from lecture slide:http://www.cs.princeton.edu/~wayne/kleinberg-tardos/pdf/IntractabilityIII-2x2.pdf#include #include #include #inc原创 2016-12-05 23:13:04 · 654 阅读 · 0 评论 -
Karger's algorithm to solve global min-cut
#include #include #include #include #include using namespace std;struct Edge{ int src; int dest; Edge(int s, int d) : src(s), dest(d) {}};struct Graph{ int V; // number of vertices v原创 2017-01-04 22:42:05 · 968 阅读 · 0 评论 -
Independent set of tree with greedy algorithm
/*Independent set on trees, which could be solved by greedy algorithm.Key observation: if node v is a leaf, there exists a max cardinality independentset containing v. http://www.cs.princeton.edu/原创 2016-12-05 18:50:55 · 449 阅读 · 0 评论 -
vertex cover problem with dynamic programming
#include #include #include #include #include using namespace std;struct node{ int data; node *left, *right; int vc; // vc is the vertex cover count for the subtree. node(int d) : data(d原创 2016-12-02 18:24:06 · 420 阅读 · 0 评论 -
vertex disjoint paths with ford-fulkerson algorithm
//// main.cpp// vertex disjoint path//// Created by Longxiang Lyu on 8/15/16.// Copyright © 2016 Longxiang Lyu. All rights reserved.// the method can be found at:// https://courses.engr.i原创 2016-08-16 09:51:43 · 650 阅读 · 0 评论 -
Edge disjoint paths with Ford-Fulkerson algorithm
//// main.cpp// Edge Disjoint paths//// Created by Longxiang Lyu on 8/15/16.// Copyright © 2016 Longxiang Lyu. All rights reserved.//#include #include #include #include #include #incl原创 2016-08-16 08:46:14 · 1443 阅读 · 0 评论 -
Find minimum cut
//// main.cpp// MinCut//// Created by Longxiang Lyu on 8/15/16.// Copyright © 2016 Longxiang Lyu. All rights reserved.// steps to find min-cut// 1. run ford-fulkerson and consider final r原创 2016-08-16 07:26:51 · 356 阅读 · 0 评论 -
Max bipartite matching with Ford-Fulkerson algorithm
//// main.cpp// Bipartite matching//// Created by Longxiang Lyu on 8/15/16.// Copyright © 2016 Longxiang Lyu. All rights reserved.//// max cardinality matching can be solved by max-flow//原创 2016-08-16 06:49:21 · 577 阅读 · 0 评论 -
Dinic Algorithm to solve max flow problem
//// main.cpp// Dinic//// Created by Longxiang Lyu on 8/12/16.// Copyright © 2016 Longxiang Lyu. All rights reserved.//// reference:// https://sites.google.com/site/indy256/algo_cpp/dinic_原创 2016-08-13 04:40:43 · 579 阅读 · 0 评论 -
Ford-Fulkerson algorithm with capacity scaling
//// main.cpp// Ford-Fulkerson with capacity scaling//// Created by Longxiang Lyu on 8/9/16.// Copyright (c) 2016 Longxiang Lyu. All rights reserved.//#include #include #include #includ原创 2016-08-11 05:58:47 · 770 阅读 · 0 评论 -
Ford-Fulkerson algorithm to solve the max flow problem
//// main.cpp// Ford-Fulkerson//// Created by Longxiang Lyu on 8/9/16.// Copyright (c) 2016 Longxiang Lyu. All rights reserved.//#include #include #include #include using namespace st原创 2016-08-10 10:57:06 · 617 阅读 · 0 评论 -
binary heap(array based)
Head file:#pragma once#ifndef _BINARY_HEAP_#define _BINARY_HEAP_#include #include #include #include #include using namespace std;template class BinaryHeap{public: BinaryHeap() = defau原创 2017-01-11 15:47:59 · 476 阅读 · 0 评论