算法整理
文章平均质量分 56
fengzhitalker
这个作者很懒,什么都没留下…
展开
-
合并排序
合并排序在有些资料或书籍中又叫归并排序。合并排序算法的基本过程如下: 分解:把待排序的n个元素分解成两组,每组n/2个元素。如果n为奇数则一组(n – 1)/2个元素,另一组1 + (n – 1) / 2 ; 排序:用合并排序法递归的对上一步分解成的两个组进行排序; 合并:把上一步排序好的两组合并在一起。#include using namespace std;//对数组的归并排序tem原创 2012-08-09 16:34:33 · 398 阅读 · 0 评论 -
如何绘制一条连接两个点的曲线
本算法转载自如何制作一个类似Tiny Wings的游戏 Cocos2d-x 2.1.4void drawCurves(CCPoint p0, CCPoint p1, void (*drawFunc)(CCPoint, CCPoint)){#define kSegmentWidth 8 int segment = floorf((p1.x - p0.x) / kSegmentWidth转载 2013-10-16 17:10:05 · 3356 阅读 · 0 评论 -
swf中rect结构的写入
#include #include #include using namespace std;union NumBit{ int num; char bit[4];};//检验位数:如(默认需要一个位来作为符号位的标志)//正数 1,用二进制表示为0000 0001,因此可知它所占用的位数为2//正数 3, 用二进制表示为0000 0011,因此可知它所占用的位数为原创 2012-10-25 17:31:27 · 537 阅读 · 0 评论 -
flash文件中RECT结构体的解析
在swf_file_format_spec_v10.pdf中,对舞台大小是用一种RECT结构体来表示,根据官方文档的描述,这种结构体是这样的//读取RECT类型/*目前想到的方案: * 1.将这九个字节数据转化成字符窜,然后通过截取字符窜得到所要的数据, * 最后转化成整数 * 2.一个字节一个字节的截取所需要的数据,然后通过一个整数变量来将其构造而成 * */原创 2012-08-23 16:43:55 · 808 阅读 · 0 评论 -
关于一道括号匹配问题
括号序列由()[]{}组成,例如((([][{}])))这样的序列是合法的,而)(就是不合法的,要求用程序实现:判断一个括号序列是否合法boolean isValidSeq(String input) 网上查了下,居然有更巧妙的方法,咳,高手果然太多了....#include #include using namespace std;#define LeftLit -1#d原创 2012-09-29 15:35:47 · 526 阅读 · 0 评论 -
c++实现快速排序(挖坑填数版)
无疑这种方法比本来的方法更加快捷,减少了内存开销,直接在原数组进行排序#include using namespace std;//采用挖坑法实现快速排序template int quickSort2(T *const t, const int begin,const int end){ if(begin >= end) { return 0;原创 2012-08-23 10:42:21 · 768 阅读 · 0 评论 -
c++实现计算多项式的霍纳规则
霍纳规则用于计算以下多项式的值,并使乘法的次数最少: #include int hornerRule(const int x, int * const a,int length){ static int index = length; if(index == 1) { return a[length - 1]; } index原创 2012-08-17 17:51:34 · 1257 阅读 · 0 评论 -
c++实现基数排序
(以下介绍内容转自百科)基数排序的方式可以采用LSD(Least significant digital)或MSD(Most significant digital),LSD的排序方式由键值的最右边开始,而MSD则相反,由键值的最左边开始。 以LSD为例,假设原来有一串数值如下所示: 73, 22, 93, 43, 55, 14, 28, 65, 39, 81 首先原创 2012-08-14 11:17:20 · 482 阅读 · 0 评论 -
c++实现堆排序
#include #include #include using namespace std;//对比枝节点和左右子节点,将比较大的节点放置于枝节点template int heapAdjust(T t[], int i, int size){ int leftChild = 2 * i + 1; int rightChild = 2 * i + 2; //先原创 2012-08-13 17:04:22 · 270 阅读 · 0 评论 -
快速排序
c++实现快速排序 快速排序原理:(假定数组程度为len) s1.找出数组中某一个元素(一般是第一个),将比它小的放在左侧,比它大的放在右侧,则可确定这个元素的位置。 假设为n s2.则可将这个数据从分割成两个数组,将0-len----1和len+1---n两个数组执行s1---->s2操作。int quickSort(T *const t, int offset,int len){原创 2012-08-09 16:33:21 · 334 阅读 · 0 评论 -
冒泡排序和插入排序
#include using namespace std;template //冒泡排序int bubbleSort(T *const t, int len){ for(int i = len - 1; i > 0; i--) { for(int j = 0 ; j < i; j++) { if(t[j] > t[j + 1原创 2012-08-09 16:32:23 · 304 阅读 · 0 评论 -
位运算实现八皇后,并打印出结果
本篇文章的算法参考自资料n皇后问题位运算版,c++的代码参考自位运算解决八皇后问题我所做的补充不过是将结果打印出来。因为每一次位置都是用二进制来表示,所以打印出二进制数即标示皇后的位置。考虑到八皇后所放置的位置具有对称性,所以从头打印的所有结果与从尾打印出来的所有结果都是一样的。运行环境为win32。#include #include #include #include us转载 2013-11-14 11:30:40 · 876 阅读 · 0 评论