
数据结构与算法
weilin.jiang
Windows内核砖家
展开
-
基本排序算法总结(C/C++)
基本排序算法分为五类: ①交换排序(冒泡排序、快速排序) ②插入排序(直接插入排序、Shell排序) ③基数排序 ④归并排序 ⑤堆排序(简单选择排序、堆排序) 下面直接上代码:#include #include #include using namespace std;/* ***************************************原创 2016-03-06 19:03:34 · 454 阅读 · 0 评论 -
【算法学习】快包算法
#include "stdafx.h"#include #include #include #include 坐标数据结构:typedef struct{ float x; float y;}Point;typedef bool(*Func)(Point, Point, Point);判断点test是否在a,b组成的直线的上方:bool Upstair(Point a原创 2016-06-04 15:06:22 · 2504 阅读 · 0 评论 -
【算法学习】切割木棍问题——动态规划
问题描述:假设,有一条长度为n的木棍,已知木棍的销售价格Pi与木棍长度i有关,i = 1,2,3,...n.问,怎样切割能获得最大收益。长度为0的木棍收益肯定是0了,即profit[0] = 0.切割长度(seg)12345678910销售价格(pi)15891017172024原创 2016-06-05 15:49:47 · 12386 阅读 · 2 评论 -
【算法学习】KMP查找匹配字符串
#include #include #include int GenNext(char *mod, int len, int next[]){ if (mod == NULL || next == NULL || len <= 0) return -1; next[0] = -1; int k = -1; int j = 0; while (j < len - 1) {原创 2016-04-19 19:39:58 · 521 阅读 · 0 评论 -
【算法学习】horspool查找匹配字符串
Horspool算法(时空权衡)利用空间提高时间效率该算法是从模式串右往左方向匹配文本的,找不到匹配就右移模式串继续找。文本串: s0 s1 .... A sn B R O S E R (R与A不匹配) s0 s1.... A R sn B R O S原创 2016-06-16 21:04:27 · 1809 阅读 · 0 评论 -
【算法学习】计算n次方——变治法
在计算a^n次方时,先将n变一变,寻找新的计算路径,预处理就是变治法的根本!如果单纯循环执行n次相乘,那么时间复杂度为O(n),n为指数;利用二进制幂大大改进效率。利用二进制幂求解分两种方法:从左至右二进制幂 和 从右至左二进制幂。从左至右二进制幂变换:a^n = a^(b[n]2^n + ... + b[0]2^0) == ((b[n]*2 + b[n原创 2016-06-16 19:38:46 · 4739 阅读 · 0 评论