Java 需要帮助创建10%随机数组进行排序吗

Java 需要帮助创建10%随机数组进行排序吗,java,arrays,random,Java,Arrays,Random,在CS实验室工作,他说我们需要创建一个10%无序数组和一个1%无序数组来使用各种算法进行排序。如何生成这样的数组?从排序数组开始。使用while循环并选择两个随机索引,以拾取要在数组中交换的两个项。记下你移动了多少物品。当您达到10%或1%时,移动的项目停止。确保检查您是否将物品放回其原始位置,并相应地更新计数器 Random random = new Random(); int length = 1000; float maxMisplaced = 0.1f; int[] data = I

在CS实验室工作,他说我们需要创建一个10%无序数组和一个1%无序数组来使用各种算法进行排序。如何生成这样的数组?

从排序数组开始。使用while循环并选择两个随机索引,以拾取要在数组中交换的两个项。记下你移动了多少物品。当您达到10%或1%时,移动的项目停止。确保检查您是否将物品放回其原始位置,并相应地更新计数器

Random random = new Random();

int length = 1000;
float maxMisplaced = 0.1f;

int[] data = IntStream.range(1000).toArray();
float misplaced = 0;

while (misplaced / length < maxMisplaced) {

    int randIndex1 = random.nextInt(length);
    int randIndex2 = random.nextInt(length);
    if (randIndex1 == randIndex2) continue;

    int randValue1 = data[randIndex1];
    int randValue2 = data[randIndex2];
    data[randIndex1] = randValue2;
    data[randIndex2] = randValue1;

    // increment if it was moved from its starting spot
    if (randIndex1 == randValue1) {
        misplaced += 1;
    }
    if (randIndex2 == randValue2) {
        misplaced += 1;
    }

    // decrement if it was moved back to its starting spot
    if (randIndex1 == randValue2) {
        misplaced -= 1;
    }
    if (randIndex2 == randValue1) {
        misplaced -= 1;
    }
}
Random Random=new Random();
整数长度=1000;
浮点最大错位=0.1f;
int[]data=IntStream.range(1000).toArray();
浮点错位=0;
while(错位/长度<最大错位){
int randIndex1=random.nextInt(长度);
int randIndex2=random.nextInt(长度);
如果(randIndex1==randIndex2)继续;
int randValue1=数据[randIndex1];
int randValue2=数据[randIndex2];
数据[randIndex1]=randValue2;
数据[randIndex2]=randValue1;
//如果从起始点移动,则增加
如果(randIndex1==randValue1){
错位+=1;
}
如果(randIndex2==randValue2){
错位+=1;
}
//如果将其移回起始点,则减小
如果(randIndex1==randValue2){
错位-=1;
}
如果(randIndex2==randValue1){
错位-=1;
}
}

不太清楚您想要实现什么目标。你能提供一个具体的例子吗?