算法

枚举算法的思想与实例讲解

枚举算法是我们在日常中使用到的最多的一个算法,本篇将会介绍枚举算法的思想与实例讲解,在使用频率上,枚举算法在蓝桥杯比赛里用的次数非常多,所以需要在平时多练习做题,毕竟实践检验真理,毕竟枚举在考试中出现的频率非常高,可谓是得枚举者得天下,下面我们就来讲讲枚举。

深入分析算法的复杂度

在系统分析算法的复杂度之前,我们先了解什么是算法?算法是指用来操作处理数据、解决程序问题的一组方法。但是对于同一个问题,我们去使用不同的算法,结果或许会一样,但不同的地方就在于你所用算法所耗费的资源和时间,这就是我们接下来学习算法的原因,不同的算法,产生的效率也不同,我们需要从中找出最合适的算法。

竞赛学习路线推荐(算法数据结构)

阅读这一节之前,请确认你熟悉的语言,无论C、C++、java都已经很熟练运用,不存在语法问题了,否则参考本节的学习路线会让你变得着急和打退堂鼓对于已经掌握一种语言可以参赛之后,算法和数据结构的学习,笔者认为大体分三个步骤:那些顺带的、不用专门学的常规算法和数据结构;这些如递归算法、遍历枚举、模拟、素数

Python试探算法

试探算法也称为回溯算法,它实际上是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,

Python贪心算法

贪心算法也被称为贪婪算法,它是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,

Python分治算法

分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解,是一种分目标完成程序算法,简单的问题可用二分法完成。1.分治算法我们在使用分治算法求解问题的时候是把一个问题划分为多个小问题,

Python递归算法

我们在前面学习过递归函数,递归函数采用的就是递归算法,前面我们通过最常见的菲波那切数列去学习了递归函数,这一节我们再来详细了解一下递归算法。1.递归算法递归算法(英语:recursionalgorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。

Python枚举算法

本章我们进入算法的学习,我们会通过比较经典的例题去讲解一些常用的算法思想,常用的算法思想包括:枚举、递归、分治、贪心、试探、动态迭代和模拟等,本节我们来学习一下枚举算法。1.枚举思想枚举算法我们也称之为穷举算法,这种算法就是在解决问题的时候去使用所有的方式去解决这个问题,

参考及相关链接

参考目录:《大话数据结构》程杰著《数据结构与算法》小黑书,C语言版本《算法与数据结构》小黑书,JAVA版本互联网搜索引擎如百度和谷歌CSDNStack论坛在基本完成数据结构的学习,你应该可以做到:1.完全自由的写出链表,以及基本的操作方法和进阶,

后记

自6月提笔写这个教程,到现在已是年末了,时光如梭,读者跟着连载应该再配合一些基本的习题和搜索应该已经基本掌握数据结构了,然而,学完这些基本的数据结构还只是计算机学习海洋的一个开始,正如我开篇所说,数据结构是计算机编程,硬件,数学的三者结合体,