日期:2014-05-20  浏览次数:20844 次

选择排序的速度竟然比插入的快
我写的选择排序的速度竟然比插入的快 测试了好多次 都是这样的结果 不知道为何 代码如下:
插入排序的
Java code
for(int i = 1;i < arr.length;i ++ ){
            int j = i;
            int temp = arr[i];
            while((j > 0) && (temp < arr[j-1])){
                arr[j] = arr[--j];
            }
            arr[j] = temp;
        }

选择排序的
Java code
for(int i = 0;i < arr.length;i++){
            int min = i;
            for(int j = i + 1;j < arr.length - i;j ++){
                if(arr[min] > arr[j]){
                    min = j;
                }
            }
            MyUtil.swap(arr[i],arr[min]);//将数据交换
        }


------解决方案--------------------
有谁规定插入排序要快于选择排序么?
------解决方案--------------------
你这样测试是不准确的,各自的算法在不同的场合时间复杂度是不一样的,比如:你输入的是否是是有顺序的、是不是打乱的。
你只能说在某某某条件下,某某某算法比某某某算法要好。
------解决方案--------------------
楼主你觉得你这个程序,在常规情况下,是:
前面那个插入排序做的赋值操作次数多,还是后面那个选择排序做的赋值操作次数多?