![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计与分析
文章平均质量分 85
chenxianqin2
这个作者很懒,什么都没留下…
展开
-
选择、冒泡、合并、快速、插入排序算法实现及性能分析
选择排序、冒泡排序、合并排序、快速排序、插入排序的算法思想和实现,以及时间复杂度比较。以下排序算法均没有进行优化,而是采用最符合原始算法思想的方式进行实现和比较。选择排序的思想与算法实现:找出待排序的数列中的最小(或最大)元素,与待排序的数列的队首元素进行交换,队首元素并入已排序数列,直至待排数列的所有元素均已排完。void SelectSort(int array[], in原创 2018-01-15 20:52:22 · 682 阅读 · 0 评论 -
基于Huffman编码的文档压缩
算法思想:统计文件中字符种类个数和各种字符个数,根据词频统计构建赫夫曼树并根据赫夫曼树找出各字符对应的编码,再根据各字符的编码对文件进行压缩,最后重构赫夫曼树,根据赫夫曼树和二进制编码对压缩文件进行解压。其中的重点在于赫夫曼树的构建与编码:构建n颗二叉树(包括单个树结点),每棵树只有其根结点有权重,由这些树组成森林。在森林中选取最小的两棵树构成新的二叉树(小的树为左子树)并且置新二叉树根结原创 2018-01-24 16:17:15 · 330 阅读 · 0 评论 -
分治法与蛮力法求最近点对问题(分治法时间复杂度O(nlogn))
讲解分治法求最近点对问题的思想与算法实现。利用分治法求最近点对与归并排序的结构上的相同,将时间复杂度降到真正意义上的O(nlogn)而不是O(nlognlogn)。1. 预处理:创建结构体Node附带属性x,y表示在平面坐标系中的位置,由Node构成点集S,任一Node就是点集S中的点,生成点时要保证任意两点不重复。2.点数较少时的情形(点数为1返回无穷大,点数为2直接计算返回...原创 2018-01-15 21:25:48 · 44086 阅读 · 16 评论 -
回溯法求n皇后问题(递归、非递归及优化)
n皇后问题是一个以国际象棋为背景的问题:在n×n的国际象棋棋盘上放置n个皇后,使得任何一个皇后都无法直接吃掉其他的皇后,即任意两个皇后都不能处于同一条横行、纵行或斜线上。蛮力法思想: 解决n皇后问题的思想本质上就是蛮力法,生成所有可能的摆放情况,并判断该情况是否满足要求,我们以树结构来表示解决问题的方法。以4*4的棋盘为例,第0层的根节点为空白的棋盘,第1层为只在棋盘的第一行摆放的四原创 2018-01-17 17:30:23 · 12227 阅读 · 0 评论 -
动态规划法求最优分配方案(空间优化)
问题: 某厂根据计划安排,拟将n台相同的设备分配给m个车间,各车间获得这种设备后,可以为国家提供盈利Ci j(i台设备提供给j号车间将得到的利润,1≤i≤n,1≤j≤m) 。问如何分配,才使国家得到最大的盈利?动态规划法:算法思想: 将m个车间划分为前m-1个和第m个,每次给第m个车间分配的时候都是建立在前m-1的最优策略的基础上(总利润最大),再进行最优分配。这样原创 2018-01-17 17:57:56 · 7745 阅读 · 2 评论