//创建两个数组并进行初始化 final int N=50000; int[] nums1=new int[N]; int[] nums2=new int[N]; for (int i = 0; i < nums1.length; i++) { nums1[i]=(int)(Math.random()*50000); nums2[i]=(int)(Math.random()*50000); } int temp=0; //冒泡排序 long startTime=System.currentTimeMillis();//记录下程序运行的开始时间 for (int i = 0; i < nums1.length-1; i++) {//两两交换的话只需要交换数组长度-1次即可 for (int j = 0; j < nums1.length-1-i; j++) {//每一次经过一次外层循环则内层循环就少一次即是nums1.length-1-i if(nums1[j]>nums1[j+1]) { temp=nums1[j]; nums1[j]=nums1[j+1]; nums1[j+1]=temp;} } } long endTime=System.currentTimeMillis();//记录下程序运行的结束时间 for (int i = 0; i < nums1.length; i++) { System.out.println(nums1[i]); } System.out.println("冒泡排序所用时间为"+(endTime-startTime)+"毫秒"); //选择排序 startTime=System.currentTimeMillis(); for (int i = 0; i < nums2.length; i++) {//外层循环控制选择次数 int min=nums2[i];//假定外层循环此次的值为最小值 int minIndex=i;//记录最值的索引 for (int j = i+1; j < nums2.length; j++) {//从最小值之后进行判断是否有比其还小的值 if(nums2[j]<min) { min=nums2[j]; minIndex=j;//记录下最小值的索引, } } //等到内层循环结束后进行交换此时取到的是最小值 temp=nums2[i]; nums2[i]=nums2[minIndex]; nums2[minIndex]=temp; } endTime=System.currentTimeMillis(); for (int i = 0; i < nums2.length; i++) { System.out.println(nums2[i]); } System.out.println("选择排序所用时间为"+(endTime-startTime)+"毫秒");
JAVA排序记录
猜你喜欢
转载自www.cnblogs.com/lzq-java/p/9297574.html
今日推荐
周排行