自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (6)
  • 收藏
  • 关注

原创 算法导论第三版第四章 最大子数组和的三种解法(暴力、教材分治法、线性解法)

1.暴力求解法该方法的思想非常简单,先找出从第1个元素开始的最大子数组,而后再从第2个元素开始找出从第2个元素开始的最大子数组,依次类推,比较得出最大的子数组。实现代码如下:/* 常规方法,时间复杂度O(n*n) 先从第一个元素开始向后累加, 每次累加后与之前的和比较,保留最大值, 再从第二个元素开始向后累加,以此类推。 */ int MaxSubSum1(int *ar

2017-12-02 11:24:05 1063

原创 算法导论第三版-思考题2-1

在合并排序中对小数组采用插入排序,代码如下:#include#includeusing namespace std;int* Insert_sort(int A[],int B[],int p,int q,int r);void Merge(int A[],int p,int q,int r);void Merge_sort(int A[],int p,int r,int k);v

2017-12-01 11:17:13 1791 1

原创 C++中虚析构函数的作用

我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明:        有下面的两个类:class ClxBase{public:    ClxBase() {};    virtual ~ClxBase() {};    virtual void DoSomething() { cout  "Do 

2017-12-22 15:27:10 152

原创 排序算法详解【归并排序-Merge_Sort】

核心思想:分治。主题流程:先将一个序列分成很多个不能再分割的子序列,将各个子序列分别排序后再将子序列合并。其实就是重复两个步骤:【1】分【2】合并。首先是第一个小问题,怎么分?比如说一个序列:12 ,23,1,44,233,10,9,8。我们先分成两段:12 ,23,1,44 和 233,10,9,8,发现还能再分成4段:12 ,23 和 1,44------233

2017-12-16 16:08:07 332

原创 二叉树的递归遍历(思路简单清晰)

预先建立用数组表示的二叉树的内容,然后建立二叉树,并进行前序、中序、后序遍历的操作,代码如下:#include#includeusing namespace std;class tree {public: int data; class tree *left, *right;};typedef class tree* btree;btree create_tree(btre

2017-12-14 11:31:19 2006

原创 算法导论第三版第十章 单链表实现栈和队列(思路简单清晰)

1.单链表实现栈虽然以数组结构来实现栈的好处是算法设计简单,但如果栈的大小可改变的话,由于数组的大小需事先声明,这时必须使用最大可能性的数组空间来考虑,这样会造成内存空间的浪费。而利用链表来实现栈的优点是随时可以动态改变链表长度。代码如下:#include#include#includeusing namespace std;class listnode {public: in

2017-12-09 10:35:29 461

原创 为什么函数声明和定义中的一维数组形参无须写明元素数目

因为函数并不为数组参数分配内存空间。形参只是一个指针,它指向的是已经在其他地方分配好内存的空间,这个事实解释了为什么数组形参可以与任何长度的数组匹配——它实际传递的只是指向数组第一个元素的指针。

2017-12-08 20:50:17 1200

原创 算法导论第三版第七章课后答案

7.1-1 参照图7-1的方法,说明PARTITION在数组A={13,9,9,5,12,8,7,4,21,2,6,11}上的操作过程。A={13,19,9,5,12,8,7,4,21,2,6,11}  ={13,19,9,5,12,8,7,4,21,2,6,11}  ={13,19,9,5,12,8,7,4,21,2,6,11}  ={9,19,13,5,12

2017-12-07 10:22:20 3403

原创 生成范围在[a,b]之中的随机整数

生成a到b之间的随机数==>int i = rand()%(b-a) + a;原理:对于任意整数a,b有:0 于是:0+a 即:a

2017-12-07 10:16:01 2751

原创 算法导论第三版第七章快速排序(一般和随机化版本)

快速排序是利用交换操作的排序,所以不是稳定排序法,最快及平均时间复杂度为O(nlogn),最坏为O(n*n)。步骤:(1)分解:数组A[p...r]被划分为两个子数组A[p...q-1]和A[q+1...r],使得A[p...q-1]中的每一个元素都小于等于A[q],而A[q]也小于等于A[q+1...r]中的每个元素。(2)解决:通过递归调用快速排序,对于子数组A[p...q-1]和

2017-12-07 10:07:47 599

原创 堆和栈的区别

一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。    2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回    收   。注意它与数据结构中的堆是两

2017-12-05 20:16:13 142

原创 算法导论第三版第六章 合并K个有序链表的三种解法(最小堆法和分治递归法)

题目要求是将k个有序链表合并为一个链表,时间复杂度限定为O(nlogk)。下面给出应用最小堆方法的两个程序,最后再贴上利用分治递归法的代码,虽然时间复杂度不及堆方法,但思路相对简单好理解。(1)最小堆方法1用一个大小为K的最小堆(用优先队列+自定义降序实现)(优先队列就是大顶堆,队头元素最大,自定义为降序后,就变成小顶堆,队头元素最小),先把K个链表的头结点放入堆中,每次取堆顶元素,然后将

2017-12-05 16:40:21 3151

原创 算法导论第三版-第6章堆排序操作完整代码(建堆、插入、删除、排序等)

程序如下:// heap_sort.cpp : 定义控制台应用程序的入口点。//#include#includeusing namespace std;#define N 1000#define PARENT(i) (i)>>1#define LEFT(i) (i)<<1;#define RIGHT(i) ((i)<<1)+1class Heap{public: /

2017-12-04 16:50:50 517

2018华为软件精英挑战赛复赛代码 by java()

2018华为软件精英挑战赛,成渝赛区无力吐槽的典哥(初赛23名,复赛14名).代码是复赛的,岭回归+均值+去噪预测结合比例回溯放置,复赛练习稳定得分81.有兴趣的可以私聊交流经验

2018-05-03

2018华为软件精英挑战赛初赛代码85分版本基于C

2018华为软件精英挑战赛,成渝赛区无力吐槽的典哥(初赛23名,复赛14名).代码是初赛的,岭回归预测加贪心放置,有兴趣的可以私聊交流经验

2018-05-03

GIF生成器(将桌面演示保存为GIF文件使用)

文件为GIF生成器(能够将桌面演示保存为GIF文件使用)

2017-10-22

基于qt的截图工具,实现截图后进行多种编辑,采用仿QQ截图控制面板

基于qt的截图工具实现了截图后进行多种编辑,采用仿QQ截图控制面板,已经进行打包,若有兴趣,可在博客中留言留下邮箱,可将主要代码发送分享。

2017-10-14

算法导论第三版答案(亲测完整版)

网上的 算法导论(第三版)答案都不完整,这个是完整版答案,分每章一个单独pdf格式的文件,易于查阅。有需要的请自行下载。

2017-10-13

四阶混沌系统的代码资源

MATLAB仿真超混沌系统,解四阶微分方程

2015-01-07

空空如也

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

TA关注的人

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