数据结构与算法
huan_yue_
这个作者很懒,什么都没留下…
展开
-
算法_整数分解因子问题
一、问题描述:大与1的正整数n可以分解为n= x1*x2*……xm,例如,当n=12时,有8种不同的分解式:12=1212=6*212=4*312=3*412=3*2*212=2*612=2*3*212=2*2*3 。二、任务:对于给定的正整数n, 编程计算n共有多少种不同的分解式。三、具体实现:1.递归int total; // 全局变量初始值默认为0void IntFactor1(int n) { if (n == 1) total+...原创 2020-10-30 12:53:29 · 626 阅读 · 0 评论 -
算法_全排列_有重复元素的
算法_全排列前面已经提到过全排列,但那个并不足以应对有重复元素的序列,所以现在补上!怎么操作呢?很简单,只需要在上一节全排列的基础上加上一个检测前后元素是否ok的函数即可。如果要交换的元素是相等,则返回不可以交换的指示,如此即可完美的解决该问题~#include <iostream>using namespace std;/************ 有重复元素的全排列问题 ******************///函数声明void P...原创 2020-10-30 12:43:46 · 574 阅读 · 0 评论 -
算法_全排列
全排列题目:给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]/** 题目出处https://leetcode-cn.com/problems/permutations/*/以下是Java版本的实现public class _46_全排列 { public st...原创 2020-10-14 23:19:39 · 134 阅读 · 0 评论 -
动态规划- 图像压缩
起因前几天老师讲了下课本《计算机算法设计与分析》上的动态规划的一个问题,特地来这里实现下。如果你提前知道了这个算法的背景,比如像素点啊,位长之类的概念,理解起来可能会比较好接受。先将彩色图片转黑白图片,然后按顺序像个贪吃蛇一样来回走,扫描出灰度值之后,如何压缩的过程。这个算法本身也有一定的难度,理解起来不太容易,不过按照定义直接推导也能实现出来,只是时间上的问题罢了。说起来还有点好笑的事,老师代码上写了灰度值序列10,12,15,255,1,2,经过压缩后的最小空间为:57擦,这比不原创 2020-10-24 20:14:20 · 1193 阅读 · 0 评论 -
数据结构与算法_快速排序_1
快速排序目录1.起源2.算法思想3.时间复杂度4.代码实现5.测试案例0.附录工具函数1.起源1960年由查尔斯·安东尼·理查德·霍尔(Charles Antony Richard Hoare,缩写为C. A. R. Hoare) 提出。2.算法思想①从数组中选择一个轴点元素(pivot)假设每次选择0位置的元素为轴点元素②利用pivot将数组分割成2个子数组将小于pivot的元素放在pivot前面(左侧)将大于pivot的元素放在pivot后原创 2020-10-12 20:42:00 · 90 阅读 · 0 评论 -
数据结构与算法_归并排序_1
目录:0.提出1. 基本思想2. 执行流程附录:0.提出1945年由约翰·冯·诺伊曼(John von Neumann)首次提出。1. 基本思想归并排序是用分治思想,分治模式在每一层递归上有三个步骤:分解(Divide):将n个元素分成个含n/2个元素的子序列。解决(Conquer):用合并排序法对两个子序列递归的排序。合并(Combine):合并两个已排序的子序列已得到排序结果。2. 执行流程1.不断地将当前序列平均分割成2个子序列直到不能再分.原创 2020-10-01 23:06:08 · 90 阅读 · 0 评论 -
数据结构与算法_插入排序_1
前言插入排序非常类似于扑克牌的排序通常意义上说,你抽到第一张牌是不用排的,没牌可排啊。当抽到第二张扑克牌时,你才会用它和前面的牌比较大小,如果小放前面,如果大放后面。第三张牌的比较逻辑同上。实现那该如何实现该排序呢?我们从头开始扫描每一个元素,每次扫描到的元素都跟前面的比较。仿照打扑克的想法,就很顺利的写出了如下代码。void InsertSort1(int* array, int length) { for (int begin = 1; begi...原创 2020-09-23 12:48:47 · 84 阅读 · 0 评论