自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 外部排序 多相合并

初始化串很有意思。数字以文本模式存放在文件中,每个数字大小不相同,那么字符长度也不一样,想要提前知道一个文件有多少数字只能遍历一遍文件计数,硬盘读写慢的要命,就算是ssd也才读写500M/s,内存(不包括cache命中)20000M/s。但多相合并根据数字数量按照斐波那契列分配到文件中,所以一定要读一个数存一个数。这个有个问题,文件结尾是空格,就算用feof并不能知道是文件结尾,造成迭

2016-06-28 03:18:52 1492 1

原创 外部排序 多路合并

《数据结构与算法分析——C语言描述》  第七章这个还是挺有意思的,用很少的内存空间给很多的数排序,复杂度是logk(N/M)#include #include #include#include//#include"fatal.h"#define M 3#define K 3typedef int ElementType;void inserti

2016-06-23 22:07:15 514

原创 外部排序 简单算法

《数据结构与算法分析——C语言描述》  第七章外部排序简单算法虽然是用了归并,涉及到文件,还是挺麻烦的。文件读取之后是不用fseek的话是不能返回的,并且文件我是用文本储存数字,每个数字的字符长度不一样,不能像数组那样随机读取存放,只能一个一个的读。#include #include //#include"fatal.h"#define M 3typedef in

2016-06-23 14:40:16 1048

转载 数学三角形

#include#include#include#define MAXN 100+5int n;int a[MAXN][MAXN];int solve(int i, int j) { if (i != n) return a[i][j] + max(solve(i + 1, j), solve(i + 1, j + 1)); else return a[i][j];

2016-06-23 00:50:57 322

原创 最小生成树

数据结构课设,难度和课后习题的大作差不多吧。用了prim,kruskal算法,数据结构用了堆、散列表、不相交集合。和以往不同的是,代码我都注释了。代码地址http://pan.baidu.com/s/1jI8lgkI

2016-06-21 12:46:49 298

原创 五子棋比赛程序对战平台

很无聊的东西,一个半月前做的,我都忘了。就是把函数放到submitCpp运行bat会把自动把结果输出到submitReport里。棋盘下标默认从1开始与22222222234.cpp.dll比赛: 先下:败 后下:胜与dsfsf.cpp.dll比赛: 先下:败 后下:胜与yhthy.cpp.dll比赛: 先下:败 后下:胜接口就是这个函数。row,col为要下的

2016-06-18 23:23:28 2424

原创 不使用递归实现归并排序

《数据结构与算法分析——c语言描述》  练习7.14 答案直接从相邻2个,4个,8个……排序,要注意的最后的结尾如何处理#include #include #include"fatal.h"int RandInt(int i, int j) { int temp; temp = (int)(i + (1.0*rand() / RAND_MAX)*(j

2016-06-16 10:34:05 1326

转载 快速选择

《数据结构与算法分析——c语言描述》  第七章算法真的很重要,选择问题是这本书一个循序渐进的例子。这次把复杂度强行降到O(N)。#include #include int RandInt(int i, int j) { int temp; temp = (int)(i + (1.0*rand() / RAND_MAX)*(j - i)); return te

2016-06-13 00:04:32 748

转载 排序

《数据结构与算法分析——c语言描述》  第七章插入排序#include #include #include"fatal.h"int RandInt(int i, int j) { int temp; temp = (int)(i + (1.0*rand() / RAND_MAX)*(j - i)); return temp;}void getRandomInt

2016-06-11 02:22:42 337

原创 把所有的物品包装起来,但任一盒子都不能放置超过其容量的重物,使用尽量少的盒子

《数据结构与算法分析——c语言描述》 练习6.34 a b c  答案毫无算法可言。不知道怎样用堆。。。最近事情真多,原来我想要的只是安安静静地写代码。a#include#includeusing namespace std;#define MAXN 100int w[MAXN];int c;int box[MAXN];int main

2016-06-11 00:06:18 793 1

原创 《数据结构与算法分析——c语言描述》 练习6.32 答案

《数据结构与算法分析——c语言描述》 练习6.32 答案避免merge(H,H)H2中没有树留下且Carry树为NULL,修改merge例程以终止合并修改merge使得较少的树总被合并到较大的树中binomialqueue.h#ifndef _BinomialQueue_H#define _BinomialQueue_Htypedef int Eleme

2016-06-04 12:21:14 3404

原创 使用二项队列来完成insert操作,不要调用merge

《数据结构与算法分析——c语言描述》 练习6.31 答案void insert(ElementType X, BinQueue h) { BinTree t1; BinTree carry = malloc(sizeof(struct BinNode)); if (carry == NULL) Error("EMPTY MEOERY"); carry->element =

2016-06-04 11:48:19 600

原创 左式堆 斜堆 buildHeap

《数据结构与算法分析——c语言描述》 练习6.22 答案代码会写,复杂度不会算。。。PriorityQueue buildHeap(ElementType * arr, int n) { std::queue q; for (int i = 0; i < n; i++) { q.push(insert(arr[i], NULL)); } while (q.siz

2016-06-03 23:32:03 715

原创 采取懒惰删除的左式堆

《数据结构与算法分析——c语言描述》 练习6.21 答案leftheap.h#ifndef _LeftHeap_H#define _LeftHeap_Htypedef int ElementType;struct TreeNode;typedef struct TreeNode *PriorityQueue;PriorityQueue initialize(voi

2016-06-03 23:07:56 892

原创 左式堆decreaseKey

《数据结构与算法分析——c语言描述》 练习6.15 答案先删除再插入static swapLeftRightSon(PriorityQueue h) { PriorityQueue temp; temp = h->right; h->right = h->left; h->left = temp;}static PriorityQueue deleteK

2016-06-03 18:24:35 1069

原创 最小-最大堆

《数据结构与算法分析——c语言描述》 练习6.15 答案还有一点小问题。用到数学递推的知识。智商捉急断断续续想了几天。还是有点问题。搞定了再贴思路。本来这篇是计划六月开始之前发的。凑够五月的30篇。可是要考汇编语言。当然最主要的原因是自己懒。五月总结:1-21日代码写得挺嗨的。最开心是10-20日。后面十天各种琐碎作业考试什么鬼的都要应付。。。六月要考英语了。。

2016-06-01 23:38:14 416

基于QT的五子棋 人人对战 人机对战 程序与程序对战

基于QT的五子棋 人人对战 人机对战 程序与程序对战

2016-03-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除