/**
* Introduction to Algorithms, Second Edition
* 5.3 RANDOMIZE-IN-PLACE
* @author 土豆爸爸
*
*/
public class RandomizeInPlace {
/**
* 数组随机重排
* @param array 待重排数组
*/
public static void permute(int[] array) {
for(int i = 0; i < array.length; i++) {
//生成一个从i到n的随机数
int randomIndex = i + (int)(Math.random() * (array.length - i));
//交换
int temp = array[i];
array[i] = array[randomIndex];
array[randomIndex] = temp;
}
}
}
import junit.framework.TestCase;
public class RandomizeInPlaceTest extends TestCase {
public void testPermute() {
int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int i = 0; i < array.length; i++) {
int[] clone = array.clone();
RandomizeInPlace.permute(clone);
print(clone);
}
}
private void print(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]);
System.out.print(" ");
}
System.out.println();
}
}
算法导论示例-RandomizeInPlace
最新推荐文章于 2024-08-21 18:31:17 发布
本文介绍了一个简单的数组随机重排算法实现,并通过JUnit测试框架验证其功能。该算法使用原地随机置换方法,对于数组中的每个元素,从当前位置到最后位置中随机选择一个与之交换,从而实现整个数组的随机排列。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Wan2.2-T2V-A5B
文生视频
Wan2.2
Wan2.2是由通义万相开源高效文本到视频生成模型,是有50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力

989

被折叠的 条评论
为什么被折叠?



