自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 几种排序(数据结构)

1、 直接插入排序基本思想每一步将一个待排序的元素,按其排序码的大小,插入到前面已经排好序的一组元素的合适位置上去,直到元素全部插完为止。当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与array[i-1],array[i-2],…的排序码顺序进行比较,找到插入位置即将array[i]插入,原来位置上的元素顺序后移。代码实现void InsertSort(int* array, size_t n)

2021-10-06 13:37:43 321

原创 Hanoi塔回顾

Hanoi塔问题设A, B, C是3个塔座。开始时,在塔座A上有一叠共N个圆盘,这些圆盘自下而上,由大到小地叠在一起。各圆盘从小到大编号为1,2,…,N,现要求将塔座A上的这一叠圆盘移到塔座B上,并仍按同样顺序叠置。在移动圆盘时应遵守以下移动规则:规则1:每次只能移动1个圆盘;规则2:任何时刻都不允许将较大的圆盘压在较小的圆盘之上;规则3:在满足移动规则1和2的前提下,可将圆盘移至A,B,C中任一塔座上。N=3:(1) 第1次 1号盘 A---->C(2) 第2次 2号盘 A

2021-10-06 10:26:25 125

原创 Bresenham算法

基本思想:按直线从起点到终点的顺序计算直线与和垂直网线格的交点,然会根据误差项的符号确定该列像素中与此点最近的像素。误差项的计算:d0=0;每走一步:d(i+1)=di+k(斜率);y方向+1时,d=d-1;算法步骤:4. 输入直线的两个端点p0(x0,y0)和p1(x1,y1).5. 计算初始值????x,????y, d=0,x=x0,y=y0;6.绘制点(x,y);7.d 更新为d+k,判断d的符号。若d>0.5,则(x,y)更新为(x+1,y+1), 同时d更新为 d

2021-10-06 10:01:23 515

原创 中点画线法

此方法利用了直线方程的一般式假设直线方程为:f(x,y)=ax+by+c;(1) f(x,y)=0, 点在直线上面(2) f(x,y)>0, 点在直线上方(3) f(x,y)<0, 点在直线下方构造判别式: d=f(m)=f(xp+1,yp+0.5)=a(xp+1)+b(yp+0.5)+c由d来判断点在直线的上方还是下方。当d<0, m在直线(Q点)下方,焦点Q 更靠近P2 取p2;当d>0, m在直线(Q点)上方,焦点Q 更靠近P1 取p1;当d=0, P1,p.

2021-10-05 22:53:38 380

原创 DDA划线法(Digital Differenttial Analyzer,数值微分法)

DDA划线法(Digital Differenttial Analyzer,数值微分法)@TOC利用计算机画出一条高质量直线输入:直线两个端点的坐标p0(x0,y0)和p1(x1,x2)输出:最佳逼近这条直线的像素点集在计算机中这些点集都是离散的,高质量直线的要求应满足以下三个条件:(1)直线要直,像素点尽可能靠近理想直线(2)直线要均匀,连续,点数不能多也不能少(3)显示线段的速度应该快,不能有卡顿现象(像素点的定位不能用乘除法,要用加减法,而且是正数加减法)DDA算法是计算机图形学中

2021-10-05 22:00:43 540

原创 汉诺塔问题

汉诺塔问题相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如下图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。递归解决:先将n-1个板子借助C杆 都移到B杆上,再把A杆上的最后一个板子移动到C杆上,最后把n-1个板子从B杆上移到C上。下面给

2020-10-02 22:29:17 110

原创 初学者迷宫dfs

建立一个二维数组 a[][] 输入坐标 1 表示障碍,0 表无障碍;输入起点和终点 搜索有多少条路可以通过;#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;string.h&amp;gt;int a[11][11],x1,y1,m,n,x2,y2;int dir[4][2]={1,0,0,1,-1,0,0,-1};//方向struct Z{ int a,b;};...

2018-11-26 19:21:45 157

原创 组合数。z

主和数从m个不同元素中,任取n(n≤m)个元素并成一组,叫做从m个不同元素中取出n个元素的一个组合;从m个不同元素中取出n(n≤m)个元素的所有组合的个数,叫做从m个不同元素中取出n个元素的组合数。1.基本公式#include&amp;lt;iostream&amp;gt;using namespace std;int Power(int n){ int c=1;## 标题 for(int i=...

2018-11-19 19:53:37 117

原创 最长公共子序列

最长公共子序列LCS(递归||动态规划)问题:给定两个字符串,找出这两个字符串中出现最长子序列的长度。列如 两个字符串“BAGGTAB”,“BGXTXAYB”,它们的最长公共子序列为“BGTAB”。这个问题直接解决方法是:同时生成给定序列的所有子序列,找到最长匹配的子序列。设 A[0…m-1],B[0… n-1]为两个字符串,长度分别为m,n。设L(A[0…m−1],B[0…n−1])是这两...

2018-10-18 20:53:32 97

原创 最长回文子序列

最长回文子序列(递归||动态规划)问题:给定一个字符串,找出最长的回文子序列。列如序列“CCABCBCAC”,它的最长回文子序列是“CABCBAC”(最长回文字符串)。最直接解决问题的方法是:找出给定字符串的所有子序列,取出最大的子序列。这个方法的复杂度是指数级的,下面来分析怎么解决。假设 A[0…n-1] 是给定的序列,长度为n。用 B[0,n-1] 表示 序列 A[0 … n-1] 的最...

2018-10-18 20:18:26 137

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除