import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class TestSort { //可以对不同表长进行比较;由于表中数据为随机数据,所以每次执行都是一组新的数据
private static int[]arr1;
private static int[]arr2;
private static int n = 0;//表长
public static int[] array(){//确保每次传值都相同
for(int i=0;i<n;i++)
arr2[i]=arr1[i];
return arr2;
}
public static int input(){
BufferedReader bf= new BufferedReader(new InputStreamReader(System.in));//输入数据
try{
return Integer.parseInt(bf.readLine());//将数据转换为整型
}catch(Exception e){ //捕捉异常,并进行异常处理
System.out.println("输入错误,请重新输入!");//输入错误,需要重新输入
return input();
}
}
public static void main(String[] args){
//将各个类实例化,以调用其内部方法
BubbleSort myBubbleSort=new BubbleSort();
InsertSort myInsertSort=new InsertSort();
SelectSort mySelectSort=new SelectSort();
QuickSort myQuickSort =new QuickSort();
ShellSort myShellSort =new ShellSort();
HeapSort myHeapSort =new HeapSort();
System.out.println("*********************************************************************************************************");
System.out.println(" ------------------------");
System.out.println(" * 内部排序算法的性能分析 *");
System.out.println(" ------------------------");
System.out.println("*********************************************************************************************************");
System.out.println("请输入待排序表的表长:");
n=input();
int numOfD=3;//希尔循环数
int num=0;//选择操作
int []d={n/2,n/4,1};//希尔增量值
arr1=new int[n];//数组arr1存放表中数据
arr2=new int[n];//数组arr2用来传值
System.out.println("*********************************************************************************************************");
System.out.println(" ***待排序表中的数据如下所示***");
System.out.println("*********************************************************************************************************");
for(int i=0;i<n;i++){
arr1[i]=(int) (Math.random()*1000);//随机获取一组值
if(i%20!=0||i==0){
System.out.print(arr1[i]+" ");
}
else{
System.out.println(arr1[i]+" ");
}
}
System.out.println("\n*********************************************************************************************************\n");
do{
System.out.println("\t1.起泡排序\n"
+"\t2.直接插入排序\n"
+"\t3.选择排序\n"
+"\t4.快速排序\n"
+"\t5.希尔排序\n"
+"\t6.堆排序\n"
+"\t7.以上各种排序\n"
+"\t0.退出程序\n");
System.out.println("请选择需要进行的操作:");
num=input();
switch(num){
case 1: {//调用气泡排序
myBubbleSort.bubbleSort(array());
myBubbleSort.output();
break;
}
case 2: {//调用直接插入排序
myInsertSort.insertSort(array());
myInsertSort.output();
break;
}
case 3: {//调用选择排序
mySelectSort.selectSort(array());
mySelectSort.output();
break;
}
case 4: {//调用快速排序
myQuickSort.quickSort(array());
myQuickSort.output();
break;
}
case 5: {//调用希尔排序
myShellSort.shellSort(array(), d, numOfD);
myShellSort.output();
break;
}
case 6: {//调用堆排序
myHeapSort.heapSort(array());
myHeapSort.output();
break;
}
case 7: {//所有排序比较
System.out.println("\n***几种排序比较如下***\n");
myBubbleSort.bubbleSort(array());
myInsertSort.insertSort(array());
mySelectSort.selectSort(array());
myQuickSort.quickSort(array());
myShellSort.shellSort(array(), d, numOfD);
myHeapSort.heapSort(array());
break;
}
case 0: {//退出系统
System.out.println("*********************************************************************************************************");
System.out.println(" -------------------");
System.out.println(" * 您已安全退出系统 *");
System.out.println(" -------------------");
System.out.println("*********************************************************************************************************");
System.exit(0);
}
default: break;//输入错误,需要重新输入
}
}while(num!=0);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
java 内部排序算法的性能分析
共17个文件
class:7个
java:7个
prefs:1个
4星 · 超过85%的资源 需积分: 12 31 下载量 135 浏览量
2011-08-25
16:24:46
上传
评论 1
收藏 19KB RAR 举报
温馨提示
[问题描述] 设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。 [需求分析] (1)对起泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较; (2)待排序表的表长不小于100,表中数据随机产生,至少用5组不同数据作比较,比较指标有:关键字参加比较次数和关键字的移动次数(关键字交换记为3次移动); (3)输出比较结果。 [选做内容] (1)对不同表长进行比较; (2)验证各算法的稳定性; (3)输出界面的优化。
资源推荐
资源详情
资源评论
收起资源包目录
java 内部排序算法的性能分析.rar (17个子文件)
java 内部排序算法的性能分析
.project 380B
bin
TestSort.class 4KB
BubbleSort.class 2KB
HeapSort.class 3KB
ShellSort.class 2KB
SelectSort.class 2KB
QuickSort.class 2KB
InsertSort.class 2KB
.settings
org.eclipse.jdt.core.prefs 629B
src
SelectSort.java 2KB
QuickSort.java 2KB
HeapSort.java 3KB
ShellSort.java 2KB
BubbleSort.java 2KB
InsertSort.java 2KB
TestSort.java 6KB
.classpath 301B
共 17 条
- 1
美丽人生
- 粉丝: 61
- 资源: 72
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页