数据结构
文章平均质量分 69
ghorge
嘿,欢迎回家
展开
-
堆排序算法解析
首先来引入一个例子:如何使用选择排序? 肯定是每一次遍历然后把大的放到最后面。(当然,前面也可以) 我感觉堆排序其实和选择差不多。 堆排序也是每次取出最大值,然后把最大值放后面 但是想学会堆排序,首先要知道什么是堆 #堆的定义 逻辑上:一个完全二叉树 物理上:借助向量实现 为什么能用一个向量来间接的弄一个完全二叉树呢? (你自己试试把这个完全二叉树按层次遍历,是不是就是...原创 2018-07-25 16:35:54 · 245 阅读 · 0 评论 -
经典问题之八皇后
首先引用下《算法竞赛入门经典(第二版)》的一句话:“回溯法是初学者学习暴力破解法的第一个障碍,学习时间短则数天,长则数月甚至一年以上” 所以我在讲回溯法之前先讲几个例子,然后层层深入(一定要耐下心,慢慢看哦) 1.枚举排列 枚举1-10的所有排列(按字典序从小到大的顺序) 肯定是递归了,但是要怎么做呢? 是不是聪明的你已经想到了,就是每次把一个数放到标记数组中,如果有相同的数字就返回,没...原创 2018-08-05 21:38:51 · 170 阅读 · 0 评论 -
完全背包
先说说动态规划吧,最重要的就是找转移方程(虽然我开始感觉自己没找,都是自己想的,但是回头看,只不过是脑子里找的,但是当时不认为那个是转移方程,多刷刷就会了) 背包问题这里就不讲了,网上找找就好啦 简单提一下优化,就是背包的d[i][j]可以优化为d[j],因为每一次都是递推,把所有的和所有累加的放进去,一个一维数组足矣。 讲完全背包之前,先讲一个完全背包退化版的问题,对理解完全背包很有...原创 2018-08-12 21:35:18 · 133 阅读 · 0 评论