冒泡排序,选择排序,快速排序,二叉树排序详细代码见博主其他文章。
public class Main {
public static void main(String[] args) {
int[] data1 = new int[40000];
int[] data2 = new int[40000];
int[] data3 = new int[40000];
int[] data4=new int[40000];
int[] data5=new int[40000];
int[] data6=new int[40000];
for (int i = 0; i < 40000; i++)
{
int randomNum = (int)(Math.random() * 40000);
data1[i] = randomNum;
data2[i] = randomNum;
data3[i] = randomNum;
data4[i] = randomNum;
data5[i] = randomNum;
data6[i] = randomNum;
}
//接下来比较冒泡排序,选择排序,快速排序与二叉树排序的速度
long start1 = System.currentTimeMillis();
data1=Maopao.maopao(data1);
long end1 = System.currentTimeMillis();
System.out.println("冒泡排序需要时间:" + (end1 - start1) + "毫秒");
_selectsort s=new _selectsort();
long start2 = System.currentTimeMillis();
data2=s.selectsort(data2);
long end2 = System.currentTimeMillis();
System.out.println("选择排序需要时间:" + (end2 - start2) + "毫秒");
quick_sort test2=new quick_sort();
long start3 = System.currentTimeMillis();
data3=test2.quicksort(data3);
long end3 = System.currentTimeMillis();
System.out.println("快速排序需要时间:" + (end3 - start3) + "毫秒");
long start4 = System.currentTimeMillis();
Node roots = new Node();
for (int number : data4)
{
roots.add(number);
}
List<Object> list=new ArrayList<>();
list=roots.values();
long end4 = System.currentTimeMillis();
for(int i=0;i<40000;i++)
{
data4[i]=(int)list.get(i);
}
System.out.println("二叉树排序需要时间:" + (end4 - start4) + "毫秒");
long start5 = System.currentTimeMillis();
Arrays.sort(data5);
long end5 = System.currentTimeMillis();
System.out.println("eclipse自带sort需要时间:" + (end5 - start5) + "毫秒");
long start6 = System.currentTimeMillis();
data6=mergesort.my_mergesort(data6, 40000);
long end6 = System.currentTimeMillis();
System.out.println("归并排序需要时间:" + (end6 - start6) + "毫秒");
System.out.println(Arrays.equals(data1,data2));
System.out.println(Arrays.equals(data2,data3));
System.out.println(Arrays.equals(data3,data4));
System.out.println(Arrays.equals(data4,data5));
System.out.println(Arrays.equals(data5,data6));
}
}