Java实验1评价成绩 您所在的位置:网站首页 java评价成绩实验遇到的问题 Java实验1评价成绩

Java实验1评价成绩

2024-06-03 04:58| 来源: 网络整理| 查看: 265

20145318 《Java程序设计》实验1实验报告

实验题目

通过对500个数据进行操作,实现快速排序、选择排序、直接插入排序算法时间复杂度的比较;并在排序数据中快速查找某一数据,给出查找是否成功,以及数据所在的位置信息。

设计思路

本次实验利用数据结构实验的C转换成Java,设计思路见下图。

a56c007dc85708ac87db3aedf739fc54.png

源代码

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;

}

}

}

}

结果截图

三种排序算法的结果和所消耗的时间分别显示,输入需要查找的关键字,若存在即输出位置,若不存在则说明。

036a999fd4cc97ae5856fd1e47fb37c6.png

问题及解决

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 实验室设备网 版权所有