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