分治算法实验用分治法实现归并排序算法.doc

分治算法实验用分治法实现归并排序算法.doc

算法分析与设计实验报告 第 二 次实验 姓名 学号 班级 时间 10.17上午 地点 工训楼309 实验名称 分治算法实验(用分治法实现归并排序算法) 实验目的 通过上机实验,要求掌握分治算法的问题描述、算法设计思想、程序设计。 实验原理 给定任意几组数据,利用分治法的思想,将数据进行排序并将排好的数 据进行输出。 程序思路: (1)简单的将原始序列划分为两个子序列; (2)分别对每一个子序列递归排序; (3)最后将排好序的子序列合并成一个有序序列。 实验步骤 ① 先解决小规模的问题。 ② 将问题分解,将数组分为两个小的数组。 ③ 递归的解各子问题, 将(中分解的两个小的数组再进行以上两个步骤 最后都化为小规模问题。 ④ 将各子问题的解进行合并最终得到原问题的解。 关键代码 void merge(int A[],int B[],int low,int mid,int high) //将两个子序列合并排序成一个有序的序列 { int i=low; int j=mid+1; int k=low; while((i=mid)(j=high)) //两两比较,将较小的数放在临时的数组中 { if(A[i]=A[j]) { B[k++]=A[i++]; } else { B[k++]=A[j++]; } }

文档评论(0)

1亿VIP精品文档

相关文档