下载此文档

太原理工大学算法实验报告.docx


文档分类:高等教育 | 页数:约13页 举报非法文档有奖
1/13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/13 下载此文档
文档列表 文档介绍
太原理工大学算法实验报告
太原理工大学算法实验报告
太原理工大学算法实验报告
本科实验报告
课程名称: 算法设计与分析   
实验项目: 算法设计与分析实验    
实验地点:       致远楼403        
专业班级:            学号:      
学生姓名:                        
指导教师:                 

2017年 3  月   28日
实验一 分治法合并排序
太原理工大学算法实验报告
太原理工大学算法实验报告
太原理工大学算法实验报告
一、实验目的
  
2。掌握合并排序的实现方法

  4.学会用分治法解决实际问题

二、实验内容
随机产生一个整型数组,然后用合并排序将该数组做升序排列,要求输出排序前和排序后的数组。
 
三、实验环境
程序设计语言:c++
编程工具:microsoft visual studio 2013
 
四、程序代码
#include ”stdafx.h"
#include<iostream〉
#include〈cassert〉
#include””
using namespace std;
template〈typename T>
void mergeSort(T arr[],int n)
{_mergeSort(arr,0,n-1);}
template〈typename T〉
void __mergeSort(T arr[],int l,int r)

if(l>=r)
return;
ﻩint mid=(l+r)/2;
ﻩ__mergeSort(arr,l,mid);
ﻩ__mergeSort(arr,mid+1,r);
if(arr[mid]〉arr[mid+1])
ﻩ __merge(arr,l,mid,r);
太原理工大学算法实验报告
太原理工大学算法实验报告
太原理工大学算法实验报告
}
template〈typename T>
void __merge(T arr[],int l,int mid,int r)
{
ﻩT *aux=new T[r-l+1];
ﻩfor(int i=l;i<=r;i++)
ﻩﻩaux[i-l]=arr[i];
int i=l,j=mid+1;
ﻩfor(int k=l;k<=r;k++)

if(i>mid)
ﻩﻩ{
ﻩ arr[k]=aux[j-l];
ﻩj++;
ﻩﻩ}
ﻩelse if(j〉r)
{
ﻩ arr[k]=aux[i-l];
ﻩi++;
ﻩ }
else if(aux[i—l]〈aux[j-l])
ﻩ {
arr[k]=aux[i-l];
ﻩﻩﻩi++;
ﻩ }
ﻩﻩelse{
ﻩﻩﻩarr[k]=aux[j-l];
ﻩ ﻩj++;

}
ﻩdelete[] aux;

int _tmain(int argc, _TCHAR* argv[])

int n=10;
ﻩint *arr=SortTestHelper::generateRandomArray(n,0,n);
cout<<”未排序的数组为:";
ﻩfor(int j=0;j〈10;j++)
ﻩ cout<<arr[j]<<" ";
ﻩcout〈〈endl;
太原理工大学算法实验报告
太原理工大学算法实验报告
太原理工大学算法实验报告
ﻩmergeSort(arr,10);
ﻩcout〈<”经过排序的数组为:";
for(int i=0;i〈9;i++)
ﻩﻩcout〈<arr[i]<<” ”;
cout〈〈endl;
}
#include""
#include〈iostream>
#include<ctime〉
#include<cassert>
using namespace std;
namespace SortTestHelper{
int *generateRandomArray(int n,int randL,int randR)

ﻩassert(ran

太原理工大学算法实验报告 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数13
  • 收藏数0 收藏
  • 顶次数0
  • 上传人gooddoubi
  • 文件大小134 KB
  • 时间2021-10-15