1、import java.lang.Math;public class Sort private double sortArray;public double getSortArray() return sortArray;public void setSortArray(double sortArray) this.sortArray = sortArray;/* 输出排序样本数组*/public void PrintSortArray(double sortArray) for(int i=0; i= 0)j = j-1;sortArrayj+1 = key;/* 冒泡排序*/public
2、void bubbleSort(double sortArray) for(int i=0; i sortArrayj+1) double temp = sortArrayj;sortArrayj = sortArrayj+1;sortArrayj+1 = temp;/*快速排序*/public void quickSort(double sortArray, int left, int right) if(left1);public void InsertSort(double a,int start,int inc)double current;int place=0;for(int i=
3、start+inc;i=start;fu=fu-inc)afu+inc=afu;if(fu=start|(afu-inccurrent)place=fu;break;aplace=current;public static void main(String args) int n = 100;double time = 0;double t1 = 0;double t2 = 0;double t3 = 0;double t4= 0;double t5 = 0;double insertArr ;double bubbleArr ;double quickArr ;double mergeArr
4、 ;double shellArr ;Sort s = new Sort();double sample = s.generateRandomSample(10);insertArr = sample;bubbleArr = sample;quickArr = sample;mergeArr = sample;shellArr = sample;System.out.println(“N=10 时的排序结果“);System.out.println(“未排序前数据为“);s.PrintSortArray(sample);/排序s.insertSort(insertArr);s.bubbleSo
5、rt(bubbleArr);s.quickSort(quickArr, 0, quickArr.length-1);s.ShellSort(shellArr);s.mergeSort(mergeArr, 0, mergeArr.length-1);System.out.println(“插入排序结果为“);s.PrintSortArray(insertArr);System.out.println(“冒泡排序结果为“);s.PrintSortArray(bubbleArr);System.out.println(“快速排序结果为“);s.PrintSortArray(quickArr);Sys
6、tem.out.println(“希尔排序结果为“);s.PrintSortArray(shellArr);System.out.println(“归并排序结果为“);s.PrintSortArray(mergeArr);for(int j=0; j3; j+)n = n*10;for(int i=0; i5 ;i+)sample = s.generateRandomSample(n);insertArr = sample;bubbleArr = sample;quickArr = sample;mergeArr = sample;shellArr = sample;/排序,计时time =
7、System.nanoTime();s.insertSort(insertArr);t1 += System.nanoTime() - time;time = System.nanoTime();s.bubbleSort(bubbleArr);t2 += System.nanoTime() - time;time = System.nanoTime();s.quickSort(quickArr, 0, quickArr.length-1);t3 += System.nanoTime() - time;time = System.nanoTime();s.ShellSort(shellArr);
8、t4 += System.nanoTime() - time;time = System.nanoTime();s.mergeSort(mergeArr, 0, mergeArr.length-1);t5 += System.nanoTime() - time;t1 = t1/5;t2 = t2/5;t3 = t3/5;t4 = t4/5;t5 = t5/5;System.out.println(“N=“ + n + “时个排序的平均时间情况如下“);System.out.println(“插入排序时间为“ + t1 + “纳秒“);System.out.println(“冒泡排序时间为“ + t2 + “纳秒“);System.out.println(“快速排序时间为“ + t3 + “纳秒“);System.out.println(“希尔排序时间为“ + t4 + “纳秒“);System.out.println(“归并排序时间为“ + t5 + “纳秒“);