数据结构与算法
Rain松
凡事预则立不预则废
展开
-
动态规划之最优化原理与动态规划方程
目录动态规划引言1 动态规划原理1.1 最短路问题及其解法1.2 动态规划的基本概念和术语1.3 最优化原理与动态规划方程1.3.1 最优化原理1.3.2 逆序动态规划方程1.3.3 顺序动态规划方程1.4 动态规划基本定理动态规划引言 1951年,美国数学家贝尔曼(R.Bellman)等根据一类所谓多阶段决策问题的特性,提出了解决这类问题的“最优化原理”,并研究了许多实际问题,从而创立了最优化的一个新分支----动态规划。 动态规划没有统一的数学模型,对不同的问题要采用不同的方法去建立它们的模原创 2020-12-25 10:52:15 · 5797 阅读 · 0 评论 -
动态规划之基本概念和术语
动态规划之基本概念和术语动态规划引言1 动态规划原理1.1 最短路问题及其解法1.2 动态规划的基本概念和术语1.2.1 多阶段决策问题1.2.2 阶段变量1.2.3 状态变量1.2.4 决策变量1.2.5 整体策略1.2.6 状态转移方程1.2.7 指标函数动态规划引言 1951年,美国数学家贝尔曼(R.Bellman)等根据一类所谓多阶段决策问题的特性,提出了解决这类问题的“最优化原理”,并研究了许多实际问题,从而创立了最优化的一个新分支----动态规划。 动态规划没有统一的数学模型,对不同原创 2020-12-22 12:12:02 · 1294 阅读 · 1 评论 -
动态规划之最短路问题及其解法
动态规划之最短路问题及其解法动态规划引言1 动态规划原理1.1 最短路问题及其解法1.1.1 最短路问题及其特点1.1.2 逆序解法1.1.3 顺序解法动态规划引言 1951年,美国数学家贝尔曼(R.Bellman)等根据一类所谓多阶段决策问题的特性,提出了解决这类问题的“最优化原理”,并研究了许多实际问题,从而创立了最优化的一个新分支----动态规划。 动态规划没有统一的数学模型,对不同的问题要采用不同的方法去建立它们的模型。有了模型之后,要想得到数值解,仍然没有统一的处理方法。这时应当注意的原创 2020-12-18 14:19:04 · 7253 阅读 · 1 评论 -
排序算法总结
排序算法大体可分为两种: 一种是比较排序,时间复杂度O(nlogn) ~ O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。 另一种是非比较排序,时间复杂度可以达到O(n),主要有:计数排序,基数排序等。原创 2017-11-06 12:17:52 · 519 阅读 · 0 评论 -
算法学习与实践之堆排序
#include #include #include #include #include int n;int *a;char srcfile[32] = "src.txt";char dstfile[32] = "dst.txt";int input(void){ FILE *fp; fp = fopen(srcfile, "r"); fscanf(fp, "%d\原创 2013-06-29 10:55:54 · 1022 阅读 · 0 评论 -
算法学习与实践之快速排序
#include #include #include #include #include int n;int *a;char srcfile[32] = "src.txt";char dstfile[32] = "dst.txt";int input(void){ FILE *fp; fp = fopen(srcfile, "r"); fscanf(fp, "%d\原创 2013-06-24 09:36:53 · 1164 阅读 · 0 评论 -
用Java分析C源代码中头文件使用频率
想法:分析LinuxC运行库各个头文件的使用频率,可以大致判断哪些C库头文件是常用的、基础的或重要的,给Linux系统编程学习者提供一个方向。其实最精细的统计分析应该是针对Linux系统调用和C标准库函数,这样对LinuxC初学者更有指导意义,不过现在还不知道怎么实现。最终选择BusyBox作为研究对象,它主要依赖Linux C运行库实现各种Linux命令和工具。 BusyBox是一个原创 2014-04-22 15:12:33 · 2448 阅读 · 0 评论 -
算法学习与实践之插入排序
#include #include #include #include typedef int ElementType;int n;ElementType *a;int src(void){ printf("src:\n"); srand((unsigned int)time(NULL)); for(int i = 0; i < n; i++) { a[i] = r原创 2013-05-16 09:00:32 · 1209 阅读 · 0 评论 -
算法学习与实践之选择排序
#include #include #include int n;int *a;void SelectSort(int A[], int N){ int i,j,min; int tmp; for(i = 0; i < N; i++) { min = i; for(j = i; j < N; j++) { if(A[min] > A[j]) min =原创 2013-05-27 15:56:33 · 1242 阅读 · 0 评论 -
算法学习与实践之希尔排序
#include #include #include #include #include int n;int *a;char srcfile[32] = "src.txt";char dstfile[32] = "dst.txt";int input(void){ FILE *fp; fp = fopen(srcfile, "r"); fscanf(fp, "%d\原创 2013-06-03 11:37:25 · 1070 阅读 · 0 评论 -
算法学习与实践之归并排序
#include #include #include #include int n;int *a;int src(void){ printf("src:\n"); srand((unsigned int)time(NULL)); for(int i = 0; i < n; i++) { a[i] = rand() % 1000000; printf("%d ", a原创 2013-05-07 10:43:54 · 1130 阅读 · 0 评论 -
算法学习与实践之冒泡排序
#include #include #include #include int n;int *a;int src(void){ printf("src:\n"); srand((unsigned int)time(NULL)); for(int i = 0; i < n; i++) { a[i] = rand() % 1000000; printf("%d ", a原创 2013-06-14 09:10:14 · 1086 阅读 · 0 评论