gpt4 book ai didi

java - 如何在循环内增加数组的大小

转载 作者:行者123 更新时间:2023-12-02 07:24:02 25 4
gpt4 key购买 nike

我有这个冒泡排序代码,我正在执行运行时分析来记录对数组进行排序所需的时间。我想知道是否有任何方法可以使用循环增加数组的大小?因为目前我手动将其递增 100,并且我需要达到 5000 的数组大小。

public class BubbleSortworking{
public static void main (String[] args) {
Random rand = new Random();
int myArray[] = new int[100]; //How to increment this using a loop
int count, count2;
count2 = 2; //amount of times to run the loop

//repeats the bubble sort, while also producing new arrays each time
for (count = 0; count < count2; count++){
for (int i = 0; i < myArray.length; i++){

myArray[i] = rand.nextInt(100) + 1; //produce numbers between 1 - ?
//System.out.print(myArray[i] + ", "); //displays unsorted array
}

bubble(myArray);

// uncomment below 2 lines to prove each new sorted array cycle is unique
//for (int i = 0; i < myArray.length; i++)
// System.out.print(myArray[i] + ", ");
}
}

public static void bubble(int myArray[]){
int temp;
long start = System.nanoTime();
//System.out.println("start " + start);

//for (count = 0; count < count2; count++){
for (int i=0; i < myArray.length - 1; i++) {
for(int j=myArray.length - 1; j > i; j--) {
if (myArray[j] < myArray[j-1]){
temp = myArray[j];
myArray[j] = myArray[j-1];
myArray[j-1] = temp;
}
}
}

long end = System.nanoTime();
System.out.println(end - start);
//System.out.println("elapsed time " + (end - start));


}

}

最佳答案

不,数组一旦创建就无法更改其大小。您要么必须分配比您认为需要的更大的空间,要么接受必须重新分配它的大小所需的开销。当它发生时,您必须分配一个新的并将数据从旧的复制到新的。

关于java - 如何在循环内增加数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13779892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com