自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Everything is possible.

  • 博客(17)
  • 收藏
  • 关注

转载 漫谈递归——递归需要满足的两个条件

很多人对递归的理解不太深刻。一直就停留在“自己调用自己”的程度上。这其实这只是递归的表象(严格来说连表象都概括得不全面,因为除了“自己调用自己”的递归外,还有交互调用的递归)。而递归的思想远不止这么简单。递归,并不是简单的“自己调用自己”,也不是简单的“交互调用”。它是一种分析和解决问题的方法和思想。简单来说,递归的思想就是:把问题分解成为规模更小的、具有与原问题有着相同解法的问题。比如二分查找算法

2016-05-20 14:03:13 15774

转载 漫谈递归——递归的思想

为什么要用递归编程里面估计最让人摸不着头脑的基本算法就是递归了。很多时候我们看明白一个复杂的递归都有点费时间,尤其对模型所描述的问题概念不清的时候,想要自己设计一个递归那么就更是有难度了。很多不理解递归的人(今天在csdn里面看到一个初学者的留言),总认为递归完全没必要,用循环就可以实现,其实这是一种很肤浅的理解。因为递归之所以在程序中能风靡并不是因为他的循环,大家都知道递归分两步,递和归,那么可以

2016-05-20 09:00:13 501

原创 洛谷【P1692】——部落卫队

P1692 部落卫队 洛谷题目描述原始部落byteland中的居民们为了争夺有限的资源,经常发生冲突。几乎每个居民都有他的仇敌。部落酋长为了组织一支保卫部落的队伍,希望从部落的居民中选出最多的居民入伍,并保证队伍中任何2 个人都不是仇敌。给定byteland部落中居民间的仇敌关系,编程计算组成部落卫队的最佳方案。输入输出格式输入格式: 第1行有2个正整数n和m,表示byteland部落中有n个居

2016-05-19 20:39:05 1180

转载 漫谈递归——一步一步算法篇

学习递归,偶然看到简明现代魔法上的文章,感到受益匪浅,决定留下这几个网址,欢迎大家交流学习。 嗯,这网站真的不错。——简明现代魔法 1.漫谈递归:递归的思想 2.漫谈递归:递归需要满足的两个条件 3.漫谈递归:字符串回文现象的递归判断 4.漫谈递归:二分查找算法的递归实现 5.漫谈递归:递归的效率问题 6.漫谈递归:递归与循环

2016-05-18 16:58:48 564

原创 五种典型的递推关系——一步一步算法篇

五种典型的递推关系 1.Fibonacci数列在所有的递推关系中,Fibonacci数列应该是最为大家所熟悉的。在最基础的程序设计语言Logo语言中,就有很多这类的题目。而在较为复杂的Basic、Pascal、C语言中,Fibonacci数列类的题目因为解法相对容易一些,逐渐退出了竞赛的舞台。可是这不等于说Fibonacci数列没有研究价值,恰恰相反,一些此类的题目还是能给我们一定的启发的。

2016-05-18 11:02:06 19006 1

原创 高精度除法(高精除以低精)——一步一步算法篇

高精度除法(高精除以低精)利用0~9次的循环减法模拟除法的过程,并计数,从而得到商的值。#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ char a1[100],c1[100]; int a[100],c[100],lena,i,x=0,lenc,b;

2016-05-15 19:49:24 5545

原创 高精度乘法——一步一步算法篇

高精度乘法 利用竖式计算的原理,注意错位相加和进位。#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main(){ int a[1000],b[1000],c[1000],lena,lenb,lenc,i,j,x; char a1[101],b1[101];

2016-05-15 19:42:22 1755

原创 高精度减法——一步一步算法篇

高精度减法利用竖式计算的方式,注意借位和错位,还有前导0。#include<cmath>#include<iostream>#include<cstdio>#include<cstring>#include<string>using namespace std;int main(){ int a[256],b[256],c[256],lena,lenb,lenc,i;

2016-05-15 19:20:05 8454

原创 高精度加法——一步一步算法篇

高精度加法利用竖式计算的原理,通过处理进位,来计算高精度数据的和。 核心代码(处理进位):int c[100];void add(int a[],int b[]) //a,b,c都为数组,分别存储被加数、加数、结果{ int i=1,x=0; //x是进位 while ((i<=a数组

2016-05-15 19:09:20 924

原创 各种排序算法的比较——一步一步算法篇

各种排序算法的比较 1.稳定性比较 插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的。 选择排序、希尔排序、快速排序、堆排序是不稳定的。2.时间复杂性比较 插入排序、冒泡排序、选择排序的时间复杂性为O(n2);快速排序、堆排序、归并排序的时间复杂性为O(nlog2n);桶排序的时间复杂性为O(n); 若从最好情况考虑

2016-05-15 18:47:22 508

原创 归并排序——一步一步算法篇

归并排序 基本思想:将两个或两个以上的有序数列(或有序表),合并成一个有序数列,这个操作叫做归并操作。所以,将两个有序表合并成一个有序表,称为二路归并,同理,有三路归并,四路归并等等。 二路归并——例如:(7,10,13,15)和(4,8,19,20),归并后得到的有序表为(4,7,8,10,13,15,19,20),这就称作二路归并。 归并过程:设置i,j两个指针,比较a[i]和a[j]的大

2016-05-14 16:01:24 1421

原创 快速排序——一步一步算法篇

快速排序 快速排序是对冒泡排序的一种改进 基本思想:在待排序的数据中找出一个枢轴,这个枢轴可以在两侧,可以在中间。然后通过一趟排序将这组数据分成两部分,使一部分的数据要比枢轴大,另一部分数据要比枢轴小,但这两部分数据仍是无序的。再通过递归和循环排序,将这两部分数据重复上面过程,从而达到让整个序列有序。 假设待排序列为{a[1],a[1+1],a[1+2],…,a[r]},首先任意选取一

2016-05-12 07:31:27 704 3

原创 插入排序——一步一步算法篇

插入排序 算法思想:将待排序的数据放在一个数组中,并设置一个中间量m,用来存储每次插入比较的元素。 (1) a[1]自成1个有序区,无序区为a[2..n]; (2) 从i=2起直至i=n为止,将a[i]放在恰当的位置,使a[1..i]数据序列有序; ① m:=a[i]; ② 将m与前i-1个数比较 , j:=i-1; while(x#include<iostream>

2016-05-11 08:19:36 729

原创 桶排序——一步一步算法篇

桶排序 算法思想:将待排序的元素放在一个有范围的数列里,将这个数列设计成有限个有序桶,将对应元素放在对应桶里,顺序输出桶里的值,得到有序序列。#include<iostream>#include<cstdio>#include<cstring>#include<string>using namespace std;int main() { int n,a[1000],i,

2016-05-10 21:01:33 404

原创 冒泡排序——一步一步算法篇

基本思想:依次比较相邻的两个数,并两两交换,使大(或小)的数不停向前推进,以此类推…… 由于在排序过程中总是大数往前,小数往后,相当气泡上升,所以叫冒泡排序。#include<iostream>#include<cstdio>#include<cstring>#include<string>using namespace std;int main() { int n,

2016-05-10 20:27:06 1034

原创 选择排序——一步一步算法篇

基本思想:每一次循环找出这一列中最大(或最小)的元素,将其放置在这一列的最前,知道所有循环结束。#include<iostream>#include<cstdio>#include<cstring>#include<string>using namespace std;int main() //选择排序 { int n,a[1000],i,j,k,m; cin>>

2016-05-10 20:14:23 458

原创 高精度除法(大数相除)

高精度除法(高除高)#include<cmath>#include<iostream>#include<cstdio>#include<cstring>#include<string>using namespace std;int a[101],b[101],c[101],d,i;void shuru(int a[]){ string s; cin>>s;

2016-05-10 19:54:39 7579 2

空空如也

空空如也

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

TA关注的人

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