Java实验1评价成绩 | 您所在的位置:网站首页 › java评价成绩实验遇到的问题 › Java实验1评价成绩 |
20145318 《Java程序设计》实验1实验报告 实验题目 通过对500个数据进行操作,实现快速排序、选择排序、直接插入排序算法时间复杂度的比较;并在排序数据中快速查找某一数据,给出查找是否成功,以及数据所在的位置信息。 设计思路 本次实验利用数据结构实验的C转换成Java,设计思路见下图。 源代码 import java.util.Scanner; class Sort { public static void main(String[] args) { int N=20; int[] a={5,2,8,9,4,3,1,7,0,6,15,12,18,19,14,13,11,17,10,16}; /*直接插入排序*/ long beginTime1=System.currentTimeMillis();//计算时间 for(int i=0;i int i, j, t; for (i = 1; i < n; i++) { t = a[i]; for (j = i; j>0 && t < a[j - 1]; j--) { a[j] = a[j - 1]; } a[j] = t; } } /*快速排序:*/ public static void QuickSort(int b[], int low, int high) { int i, j, middle; i = low; j = high; middle = b[low]; while (i < j) { while (i < j&&middle b[j] = b[i]; j--; } } b[i] = middle; if (low < i) QuickSort(b, low, i - 1); if (i < high) QuickSort(b, j + 1, high); } /*选择排序:*/ public static void SelectSort(int c[], int n) { int i, j, k, t; for (i = 0; i < n; i++) { k = i; for (j = i + 1; j < n;j++) if (c[k]>c[j]) k = j; if (k != i) { t = c[i]; c[i] = c[k]; c[k] = t; } } } } 结果截图 三种排序算法的结果和所消耗的时间分别显示,输入需要查找的关键字,若存在即输出位置,若不存在则说明。 问题及解决 Java中时间计算的语句与C中不同,这样比较方便。 long beginTime3=System.currentTimeMillis();//计算时间 执行语句 long endTime3=System.currentTimeMillis(); System.out.println(endTime3-beginTime3+" 毫秒"); 排序过程可能耗时很短,可以通过循环执行排序来计算时间。 调试过程中出现了查找数组溢出的情况。 比较语句原代码: while (a[add] != key&&add=0&&add |
CopyRight 2018-2019 实验室设备网 版权所有 |