c++常见的算法快速分析解决(一)
题目:用冒泡法从键盘输入10个数字,编写代码对他排序
分析:
冒泡法排序将待排序的元素看做是垂直的气泡,值较小的元素比较轻,往上浮动,在这里算法中需要对这组“气泡”出来若干次;每处理一次,就对两个相邻的“气泡”的值进行交换,当位置较高的“气泡”大于另一个“气泡”的值,则可以通过临时变量将两个“气泡”的值交换,所以此时,第一次处理后,最轻的“气泡”值就浮到最高的位置,第二次处理后,第二轻的数据浮到第二高的位置。一般处理N次以后,这时就没有必要比较第N高位置以上的“气泡”,因为此时差不多的“气泡”都正确排好了序.代码如下:
using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace bubble_sort
{
class Program
{
static void Main(string[] args)
{
int a, b,temp;
int[] Bubble_sort_arr = new int[10];//定义类型为int的数组Bubble_sort_arr
Console.WriteLine("请输入10个整数");
for (a=0; a < 10;a++ )//将输入的10个数字存储于数组的子项当中
{
Bubble_sort_arr[a] = Convert.ToInt32(Console.ReadLine());
}
for (b = Bubble_sort_arr.Length - 1;
b > 0;
b-- )//经过2层的循环,将数组中的子项数值进行交换
{
for(a=0;a<b;a++)
{
//当前一项大于后一项的时候,将交换两项的位置
if (Bubble_sort_arr[a] > Bubble_sort_arr[a + 1])
{
temp = Bubble_sort_arr[a];
Bubble_sort_arr[a] = Bubble_sort_arr[a + 1];
Bubble_sort_arr[a + 1] = temp;
}
}
}
Console.WriteLine("排好序的10个整数是");
for (a = 0; a < Bubble_sort_arr.Length;a++ )
{
Console.WriteLine(Bubble_sort_arr[a].ToString());
}
Console.ReadLine();
}
}
}
结果:
题目:递归法对一组的排序规则为:1、1、2、3、5、8、13、21、34........请求第50位的数值
分析:
从给出的数字序列当中发现规律,第1个数字和第2个数字相加之和为第3个数;第2个数和第3个数的和为第4个数,依次类推,可知道第N-1个数字和第N个数字相加的和为第N+1数字,此时可以得到如下规律:
当N=0;或者N=1时,F(N)=1; 当N>1时,F(N)=F(N-1)+F(N-2);此时不难得到第50个数字是多少了...如图:代码如下:
using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Recursion
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("输出第50为的是{0}",GetNumber(49));
Console.ReadKey();
}
static int GetNumber(int N)
{
if (N <= 1)
{
return 1;
}
return GetNumber(N - 1) + GetNumber(N - 2);
}
}
}
高斯求和:整数1--100求和的问题根据数学家高斯给出著名的解决方法,请用算法实现..
分析:
代码如下:
using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Gaussian_summation
{
class Program
{
static void Main(string[] args)
{
//定义两个int类型变量 a,sum,a用于计数和索引,sum用于存储相加结果
int a, sum = 0;
int[] Arr = new int[100];
//定义int类型数组,Arr包括100个子项
for(a=0;a<Arr.Length;a++)//开始循环,从0-99,将a赋予当前数组子项
{
Arr[a]=a+1; &nbs
补充:软件开发 , C++ ,