计算机算法设计与分析实验报告 下载本文

内容发布更新时间 : 2024/5/6 3:30:17星期一 下面是文章的全部内容请认真阅读。

攀枝花学院

实 验 报 告

2013-2014学年第二学期

课程名称:算法设计与分析实验报告 系 (院): 数学与计算机学院 专 业: 计算机科学与技术 班 级: 2011级计本 学生姓名: 赵显勇 学 号: 201110801071 指导教师: 银 星

实验报告

课程名称 实验项目名称 实验类型 计算机算法设计与分析 实验一 排序算法效率比较 设计型 学 时 2 实验地点 分测6A-2 实验日期 2014.4.1 一、 实验目的及要求(本实验所涉及并要求掌握的知识点) 比较至少4种排序算法的执行效率。已学过的算法:起泡排序、选择排序、插入排序、shell排序,归并排序、快速排序等。 要求: 1、从中选择至少4中排序算法,写成独立的函数进行调用。 2、参与排序的数据不少于5000个,要求用数据文件存储随机产生的数据。 3、要求在main()函数中调用以上函数,并输出各排序算法所用时间。 二、实验环境(本实验所使用的硬件设备和相关软件) 计算机一台 Java运行环境 三、实验内容及步骤 源代码1: * @ClassName: SortTool * @Description: 几种常见的排序算法 * @author 1639469539@qq.com * @date 2014年4月3日 下午6:56:46 public class SortTool { private void swap(int[] array, int index1, int index2) { } * @Title: bubbleSort * @Description: 冒泡排序 public void bubbleSort(int[] array) { int scale = array.length; for (int i = scale - 1; i > 1; i--) { for (int j = 0; j < i; j++) { int temp = array[index1]; array[index1] = array[index2]; array[index2] = temp;

} } } if (array[j] > array[j + 1]) { //比较找出最大值 } swap(array, j, j + 1); * @Title: selectSort * @Description: 选择排序 public void selectSort(int[] array) { } * @Title: insertSort * @Description: 插入排序 public void insertSort(int[] array) { } * @Title: mergeSort * @Description: 归并排序,合并两部分排好序的元素,然后所有元素有序, int scale = array.length; for (int i=1; i=0 && mark < array[j]) { } if (j != i - 1) {//已找到插入的合适位置 } array[j + 1] = mark; //插入元素 array[j + 1] = array[j]; j--; //寻找适合插入的位置,此过程中元素依次往后移动//从第二个位置开始标记,现在标记位置前面的元素已有序 //暂存标记位置上的元素,空出它的位置 int scale = array.length; int turn = scale - 1;//需要走的趟数 for (int i = 0; i < turn; i++) { } int max = 0; // 记录选取最大值的下脚标 int len = scale - i;//依然无序的元素长度 for (int j = 1; j < len; j++) { } if (max != len - 1) {//需要交换的时候 } swap(array, max, len - 1); if (array[max] < array[j]) { } max = j; //比较找出最大值的下脚标 一个位置