- 博客(8)
- 资源 (2)
- 收藏
- 关注
原创 动态规划;漂亮打印问题;时间复杂度O(n方); 思考方法记录在内;
#include using namespace std;//漂亮打印问题//穷举法:根据递归树,当前层可以放前几个单词,下一层分别又可以放剩余的前几个单词, 所以穷举规模为指数级,不合理。//具有最优子结构性质://当满足 : 求和{ (lengthOfWords i -> j) +(j-i) } <= M 时, 即i 到j的单词可以放入一行,此时 m[i
2010-03-31 21:45:00 4561
原创 动态规划;最长公共子序列;LCS问题;
#include using namespace std;class LCS{private: char *mString;//字符串m char *nString;//字符串n int **lcs;//降低空间复杂度,利用2*n维数组记录lcs[1:m][1:n]当前与前一行的状况 int **record;//为了能够从顶至下的构造出LCS进行的记录 i
2010-03-31 17:52:00 958
原创 基数排序;最优在O(n)时间内完成;基数排序为按最次要数位->最重要数位一次排序;桶排序;O(n);
//基数排序伪代码 RADIX-SORT(A,d)//d为数的位数1. for i2.do 使用一种稳定的排序对数组A按当前位i进行排序 稳定的排序,例如计数排序,不采用比较方式,但排序过程开辟2个数组进行记录,内存需求比较大。 而非稳定的排序,例如快速排序,合并排序,堆排序等,采用比较+原地置换策略,不需要额外的空间或需要很少额外空间。 根据情况选择
2010-03-30 21:19:00 733
原创 计数排序;非比较排序法;时间复杂度接近于O(n);
#include using namespace std;class CountingSort{private: int *arr;//待排序数组 int *count; int *result; int length;//数组长度 int max;//最大元素public: //构造函数 CountingSort(int length) {
2010-03-30 21:06:00 944
原创 分治算法;骨牌覆盖棋盘问题;
#include using namespace std;class ChessBoard{private: int board[50][50];//记录骨牌序号 int dr;//初始棋盘暗格横坐标 int dc;//初始棋盘暗格纵坐标 int size;//初始化棋盘长度 int count;public: //构造函数,初始化棋盘 Ches
2010-03-30 20:35:00 1617
原创 分治算法;随机化划分函数;快速排序;线性时间选择第K小元素;快速排序平均时间复杂度nlgn;
#include using namespace std;class QuickSort{private: int *arr;//待排序数组 int length;//数组长度public: //构造函数 QuickSort(int length) { arr=new int[length+1]; this->length=length;
2010-03-30 18:49:00 4755 7
原创 最小堆得实现;优先队列的堆实现;堆排序的时间复杂度nlgn;
#include using namespace std;class MinHeap{private: int heapSize;//堆大小 int *arr;//数组public: //构造函数 MinHeap(int length)//传入数组初始化大小 { this->heapSize=length; arr=new int[50]
2010-03-30 12:10:00 4346
原创 归并排序;分治算法;复杂度nlgn;附加逆序数算法;
#include using namespace std;class MergeSort//归并排序类{private: int *arr; //待排序数组 int *temp; //临时记录数组 int length; //数组长度 int num;//逆序对数量 public: //构造函数 MergeSort(int len
2010-03-29 21:56:00 1539
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人