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

解决方案 »

  1.   

    有谁规定插入排序要快于选择排序么?
      

  2.   

    你这样测试是不准确的,各自的算法在不同的场合时间复杂度是不一样的,比如:你输入的是否是是有顺序的、是不是打乱的。
    你只能说在某某某条件下,某某某算法比某某某算法要好。
      

  3.   

    楼主你觉得你这个程序,在常规情况下,是:
    前面那个插入排序做的赋值操作次数多,还是后面那个选择排序做的赋值操作次数多?