基础算法
dxt_snow
每天进步一点点
展开
-
动态规划问题:01背包问题、硬币找零问题
动态规划问题:01背包问题动态规划问题01背包问题 动态规划问题 01背包问题原创 2020-12-01 15:41:05 · 647 阅读 · 0 评论 -
KMP字符串匹配算法
KMP字符串匹配算法原创 2020-11-28 09:43:33 · 186 阅读 · 2 评论 -
堆排序算法
堆排序算法介绍代码 介绍 堆排序虽然使用到了树的思想,但在编程中根本不需要树结构。 代码 import java.util.Arrays; /** * 堆排序 * 算法时间复杂度为 nlogn * 不稳定 * 重点: * 1) 在保存的二叉树节点的数组中,一个节点的索引为n,那么他的左子节点的索引为2n+1,右子节点的索引为2n+2 * 2) 大根堆和小根堆都是完全二叉树,大根堆中父节点的数据大于等于其子节点的数据,小根堆中父节点的数据小于等 * 于其子节点的数据 * 3) 大根堆原创 2020-10-29 21:48:22 · 80 阅读 · 0 评论 -
希尔排序算法
希尔排序算法 代码 import java.util.Arrays; /** * 实现希尔排序 * 时间复杂度:?? * 稳定性:不稳定,一次插入排序是稳定的,但在不同的插入排序过程中,相同的元素可能在各自的插入排序中移动,最后其稳定性就会被打乱 * @author dxt * */ public class ShellSort { public static void main(String[] args) { int[] array = {9, -1, 3, 5, -5, 6, 4}原创 2020-10-11 14:32:52 · 81 阅读 · 0 评论 -
1.3 八皇后问题
1.3 八皇后问题问题描述思路分析 问题描述 在8x8格的国际象棋棋盘上拜访八个皇后,使其不能相互攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线上。问有多少中摆法。 思路分析 第一个皇后放在第一行第一列 第二个皇后放在第二行第一列,然后判断是否合理(不能相互攻击),如果不合理,继续放在第二列、第三列、依次把所有列找完,直到找到一个合适的 继续放置第三个皇后,放在第三行的第一列、第二列…直到第八个皇后也被放在一个不冲突的位置,原创 2020-09-20 09:57:03 · 181 阅读 · 0 评论 -
1.2 Hanoi塔问题
1.2 Hanoi塔问题问题描述分析代码 问题描述 Hanoi塔问题由3个竖立着的塔座和一组中间有孔的圆盘组成,圆盘中间有个孔以便沿塔座柱移动叠放,每个圆盘有不同的直径。Hanoi塔的初始状态是所有的圆盘全部大小有序地叠放在一个塔座上,最大圆盘放在最底层,如下图所示。 Hanoi塔问题的目标是:将所有的圆盘从原始塔座(第一个塔座)上移动到目标塔座(第三个塔座)上。原创 2020-09-19 16:17:24 · 681 阅读 · 0 评论 -
1.1 递归基础介绍
4.1 递归基础介绍基本概念递归与迭代递归需要遵循的规则递归解决迷宫问题 基本概念 递归是一种程序设计技术,允许一个方法调用自己以达到最终目的。 递归与迭代 迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。即迭代过程的每一次结果,都是由对前一次所得结果施行相同的运算步骤得到的。 理论上递归和迭代可以相互转换。迭代一定可以转化为递归,递归不一定能转化为迭代。 实际应用中递归的算法要比迭代效率低,因为程序每调用一原创 2020-09-18 21:55:45 · 527 阅读 · 0 评论 -
面向对象方式实现六种排序算法
c++以面向对象方式实现六种排序算法六种排序算法代码时间附杂度 六种排序算法 1、选择排序 2、冒泡排序 3、插入排序 &n...原创 2019-11-15 14:20:27 · 1008 阅读 · 0 评论 -
全排列生成及子集生成的递归算法
全排列生成及子集生成的递归算法两个方法代码 两个方法 permutations():用来生成数组array中所有元素的全排列; subset():用来生成数组array中所有元素的子集,包含空集。 代码 /* 1、输出n个整数的全排列 2、输出n个整数的所...原创 2019-11-14 15:49:15 · 2705 阅读 · 0 评论 -
冒泡排序算法
冒泡排序算法原理代码 原理 更新中ing… 代码 #include <iostream> using namespace std; int main(){ int arr[] = {4, 2, 8, 0, 5, 7, 1, 3, 9}; int temp = -1; //外层循环:轮数 = 元素个数 - 1 for(int i=0; i<9-1; i++){ //...原创 2019-07-23 16:10:04 · 103 阅读 · 0 评论