随机化算法
本文最后更新于:2024年2月12日 晚上
模拟退火
题目:
数组随机化
题目:
Fisher-Yates 洗牌算法
线性时间复杂度打乱数组,先打乱数组,在排序,可以避免快排最坏时间复杂度。
static final Random random = new Random();
static void shuffleSort(int[] a) {
int n = a.length;//shuffle, then sort
for (int i = 0; i < n; i++) {
int oi = random.nextInt(n), temp = a[oi];
a[oi] = a[i];
a[i] = temp;
}
Arrays.sort(a);
}
本文作者: MerickBao
本文链接: https://merickbao.top/post/%E7%AE%97%E6%B3%95/%E8%BF%9B%E9%98%B6%E7%AE%97%E6%B3%95/%E9%9A%8F%E6%9C%BA%E5%8C%96%E7%AE%97%E6%B3%95.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!