if (min == right) { // 这段代码存在的意义在于可能存在min==right
min = max; // 的情况,在上面的arr[right]与arr[max]的
} // 值交换后,arr[left]就应该与arr[max]交换
temp = arr[min]; //
arr[min] = arr[left]; // 交换最小值到左边
arr[left] = temp; //
left++;
right--;
}
return;
}
上面的优化相比于原来的选择排序来说在实现上复杂了一点,但在效率上却好了不少。