1.打乱数组顺序,从数组最后一位开始,每次随机生成一个前i
位的索引,将该位置和对应位置交换
for(int i = arr.size() - 1; i >= 0; i--){
int index = rand()%i + 1;
if(i != index){
swap(arr[i], arr[index]);
}
}
2.每次排序时,不使用第一个或者最后一个数作为基数,而是采用随机函数生成的索引进行选择
2023-11-27 08:48:28
1.打乱数组顺序,从数组最后一位开始,每次随机生成一个前i
位的索引,将该位置和对应位置交换
for(int i = arr.size() - 1; i >= 0; i--){
int index = rand()%i + 1;
if(i != index){
swap(arr[i], arr[index]);
}
}
2.每次排序时,不使用第一个或者最后一个数作为基数,而是采用随机函数生成的索引进行选择