算法导论读书笔记
文章平均质量分 61
方品
fangpin.github.io
展开
-
快速排序的随机化算法
快速排序在最坏情况下的复杂度较高,采取随机化算法选择每次的分割点,能够在一定程度上使每次划分的平衡性更好。 // // main.cpp // eoj1807 // // Created by Fangpin on 15/3/15. // Copyright (c) 2015年 FangPin. All rights reserved. // #include #include #原创 2015-03-15 16:07:13 · 1196 阅读 · 0 评论 -
大整数分治乘法
#include #include #include #include using namespace std; //500 wei cheng fa struct Num{ int num[1000],len; Num(){ memset(num,0,sizeof(num)); len=1; } Num(const str原创 2015-04-13 19:03:41 · 813 阅读 · 0 评论 -
二叉查找树相关
// // main.cpp // 二叉查找树 // // Created by Fangpin on 15/3/30. // Copyright (c) 2015年 FangPin. All rights reserved. // #include struct Tree{//树结构 int key; Tree *left,*right,*p; }; // 返回指向树原创 2015-03-30 11:05:22 · 670 阅读 · 0 评论 -
整数划分
整数划分原创 2015-03-23 18:28:29 · 1384 阅读 · 0 评论 -
EOJ1040 高斯消元法求解线性方程组的解
#include #include #include #include #include using namespace std; const int size_n=100; const double exps=1e-7; double a[size_n][size_n],b[size_n],ans[size_n]; void get_ans(int n){ for(int原创 2015-03-23 08:58:14 · 1042 阅读 · 0 评论 -
eoj1041 矩阵的LU分解
//仅对高斯消元过程中不发生行交换的情况适用。#include #include #include #include #include #include using namespace std; const int size_n=100; const double exps=1e-7; double a[size_n][size_n],L[size_n][size_n],b[size原创 2015-03-23 09:01:46 · 841 阅读 · 0 评论 -
最大连续子序列和 分治思想和动态规划思想
解决最大连续子序列和的两种方法:分治,动态规划。 分治时间复杂度虽然更高,但我还是写了一遍加深对这种思想的理解:将一个问题分治成若干个小的同样思路的子问题来解决。本题将所求序列等分成左右两个子序列,愿序列的最大子序列和必是左序列最大子序列和,有序列最大子序列和,跨左右子序列最大和三者中的最大者。 动态规划:用dp[i]更新dp[i+1]就行。 分治: // // main.cpp //原创 2015-03-09 11:54:27 · 1659 阅读 · 0 评论 -
归并排序,分治思想
merge函数将两列有序序列合成一列。 merge_sort 函数使用分治思想,递归求解。将对一个序列排序转换成对左右两个序列排序,一直到序列长度为一时,递归开始回升。再将左右两个已经排好序的序列合并。 // // main.cpp // merge_sort // // Created by Fangpin on 15/3/9. // Copyright (c) 2015年 Fang原创 2015-03-09 10:02:24 · 745 阅读 · 0 评论