当前位置: 代码迷 >> J2SE >> 选择排序的速度竟然比插入的快解决办法
  详细解决方案

选择排序的速度竟然比插入的快解决办法

热度:58   发布时间:2016-04-24 01:07:27.0
选择排序的速度竟然比插入的快
我写的选择排序的速度竟然比插入的快 测试了好多次 都是这样的结果 不知道为何 代码如下:
插入排序的
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]);//将数据交换        }


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