随笔分类 - 数据结构和算法
学习数据结构和算法时的一些对我而言的难点的记录和思考
摘要:引言 期末考试结束在家的时候有外校的同学问了我一道数据结构考试题,要求不用栈和递归,实现树的遍历。当然,我想到了用迭代算法来做,但是没想出来怎么做。最近几天刷题连续刷到要求用迭代实现遍历二叉树的题,打算记录一下morris算法的学习过程。 原理 morris算法巧妙地将每个叶子节点都连接到了记录完它
阅读全文
摘要:一些废话:今天在刷题的时候遇到了一道要求比较复杂的排序的题,用sort不能实现,需要手打快排。做完后来我的博客翻了一下竟然没写过快排的随笔,现在把它填上。 前言: 大家都知道,在C++中,有一个非常好用的函数sort(),使用它只需要包括<algorithm.h>的头文件即可。 但是在某些情况下,仅
阅读全文
摘要:一些废话 第一次遇见动态规划是在大一下学期刚转完专业时小学期的练习题,对于当时刚学完C语言语法的我来说,动态规划简直就是天书。今天刷题的时候又见到动态规划,于是随手写一篇学习笔记记录一下动态规划的学习过程。 引言 动态规划的基本概念,请您自行谷歌,反正看了也没用,不会的人怎么琢磨基本概念都琢磨不出来
阅读全文
摘要:原理: 设有n个数字,初始状态n个数字随机排序,最终实现从大到小的顺序 堆排的本质是构成一个二叉树,其二叉树的特性是子树都比其父亲的数值要小(针对从大到小的排序而言,这种树叫最大堆) 堆排序一共分成三步 1.构建初始二叉树,将本无序的堆栈,以最大堆的形式重新构造,以便于接下来的步骤的进行 2.将最大
阅读全文
摘要:P1255 数楼梯 题目描述 楼梯有 NN 阶,上楼可以一步上一阶,也可以一步上二阶。 编一个程序,计算共有多少种不同的走法。 输入格式 一个数字,楼梯数。 输出格式 输出走的方式总数。 说明/提示 对于 60\%60% 的数据,N≤50 对于 100\%100% 的数据,N≤5000 分析: 因为
阅读全文
摘要:原理: 设有n个数字,初始状态n个数字随机排序,最终实现从小到大的顺序 1.每次比较时,同时比较两个相邻的元素,根据大小交换位置,实现左小右大。 2.一共需要比较n-1趟,随着比较的趟数递增,每一趟所需要比较的次数递减,如第i趟只需要比较n-1-i次(下面会深入分析比较过程) 3.每一趟走完之后,不
阅读全文

浙公网安备 33010602011771号