黑马程序员技术交流社区
标题:
关于BubbleSort和SelectSort的效率问题
[打印本页]
作者:
love~陌
时间:
2014-6-5 20:07
标题:
关于BubbleSort和SelectSort的效率问题
数组排序到了现在才讲,开课都过了15天了,时间过去一多半了,培训期马上结束了,班里人还没认识几个···
package practice;
public class ArrayDemo {
/**
* @param args
*/
int [] arr={1,2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,
12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,2,15,
16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,
89,41,2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,
1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,
12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,
5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,
4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,2,15,
16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,2,
15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41,2,15,16,4879,5454,12564,1165,12,89,41,
2,15,16,4879,5454,12564,1165,12,89,41};
public static void main(String[] args) {
Time t1=new ArrayDemo().new Time1();
System.out.println(t1.getTime());
Time t2=new ArrayDemo().new Time2();
t2.getTime();
System.out.println(t2.getTime());
}
class Time1 extends Time{
@Override
public void runCode() {
// TODO Auto-generated method stub
ArrayDemo.selectSort(new ArrayDemo().arr);
}
}
class Time2 extends Time{
@Override
public void runCode() {
// TODO Auto-generated method stub
ArrayDemo.selectSort(new ArrayDemo().arr);
}
}
//选择排序
public static int[] selectSort(int [] arr){
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
if (arr[i] < arr[j]) {
swap(arr, j, i);
}
}
}
return arr;
}
//冒泡排序
public static int[] bubbleSort(int[]arr){
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length-i-1; j++) {
if (arr[j] > arr[j+1]) {
swap(arr, j, j+1);
}
}
}
return arr;
}
//位置互换
private static void swap(int[] arr,int m,int n){
if (arr[m] > arr[n]) {
int temp=arr[m];
arr[m]=arr[n];
arr[n]=temp;
}
}
}
abstract class Time{
public abstract void runCode();
public final long getTime(){
long beginTime=System.currentTimeMillis();
runCode();
return System.currentTimeMillis()-beginTime;
}
}
复制代码
这个数组有点牛逼,一顿疯狂复制粘贴,为了区分二者效率,没办法。
哥们复制一下代码。运行一下就知道了。
数组比较大的时候,BubbleSort确实要比SelectSort效率高,比如我现在的是数组,从运行结果就能明显看出来
冒泡和选择的效率问题.png
(65.11 KB, 下载次数: 44)
下载附件
2014-6-5 20:07 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2