下载此文档

算法实验报告.doc


文档分类:生活休闲 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
《算法分析与设计》上机实验报告
姓名:郑翔
学号:120105031108
班级:软件三班
上机实验题目
上机实验一递归算法的设计与实现
计算整数的非负整数次幂
基于递归算法的插入排序
上机实验二递归算法的实现
自然归并算法的设计与实现
快速排序算法的设计与实现
上机实验三贪心算法的实现
背包问题的设计与实现
2. 单源点最短路径问题的设计与实现
算法设计思路
上机实验一递归算法的设计与实现


源程序代码
上机实验一递归算法的设计与实现

#include <iostream>
using namespace std;
int power(int x,int n)
{
int y;
if(n==0)
y=1;
else{
y=power(x,n/2);
y=y*y;
if(n%2==1)
y=y*x;
}
return y;
}
int main()
{
int x,n;
int sum=0;
cout<<"请输入整数x,非负整数n:"<<endl;
cin>>x>>n;
sum=power(x,n);
cout<<"x的n次幂为:"<<sum<<endl;
return 0;
}
时间复杂度○(logn)
基于递归算法的插入排序
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
void insertionSort(int *a,int item,int size)
{
if(size==0)
a[0]=item;
else
{
for(int i=size-1;i>=0;i--)
{
if(item<a[i])
a[i+1]=a[i];
else
break;
}
a[i+1]=item;
size--;
insertionSort(a,a[size],size);
}
}
void main()
{
int a[7]={3,2,4,7,6,8,1};
insertionSort(a,1,6);
for(int i=0;i<7;i++)
cout<<a[i]<<";";
}
时间复杂度: ○(NlogN)
上机实验二递归算法的实现
自然归并算法的设计与实现
#include<iostream>
#define N 10
using namespace std;
int A[N];
void merge(int A[],int low, int mid, int high)
{
int i=low;
int j=mid+1;
int T[N];
int k=0;
while (i<=mid && j<=high)
{
if (A[i] <= A[j])
{
T[k] = A[i];
i++;
k++;
}
else
{
T[k] = A[j];
j++;
k++;
}
}
if (i == mid+1)
{
while (j <= high)
{
T[k] = A[j];
k++;
j++;
}
}
else
{
while (i <= mid)
{
T[k] = A[i];
k++;
i++;
}
}
for (i=low,k=0; i<=high; i++,k++)
A[i] = T[k];
}
void mergesort(int A[],int low,int high)
{
int mid=0;
if(low<high)
{
mid=(low+high)/2;
mergesort(A,low,mid);
mergesort(A,mid+1,high);
merge(A,low,mid,high);
}
}
void main()
{
cout<<"Please input ten numbers:"<<endl;
for(int i=0;i<=9;i++)
{
cin>>A[i];
}
cout<<"The input numbers

算法实验报告 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wdwd123321123
  • 文件大小249 KB
  • 时间2018-04-26