我写的选择排序的速度竟然比插入的快 测试了好多次 都是这样的结果 不知道为何 代码如下:
插入排序的
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]);//将数据交换
}
插入排序的
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]);//将数据交换
}
你只能说在某某某条件下,某某某算法比某某某算法要好。
前面那个插入排序做的赋值操作次数多,还是后面那个选择排序做的赋值操作次数多?