我已經編寫了一個java程序,它通過一些常量清單中的每個數字。以下是該計劃。我已經創建了一個myNewNumbers列表來存儲這些多個數字。下面是我的疑惑給出一個列表中的數字。如何用最小的時間複雜度來代替每個元素
有沒有更好的方式來寫在最小的時間複雜度? 目前在我的for循環中有10個元素。如果用戶想要處理100萬個元素,該如何處理? 我是初學者多線程。如何確保它在mutithreading
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class MultiplyHugeNumber {
static List<Integer> mynumbers;
static List<Integer> myNewnumbers;
static Integer MUTIPLY_ELEMENT=2;
public static void main(String[] args) {
// TODO Auto-generated method stub
mynumbers= new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
mynumbers.add(i);
}
System.out.println(Arrays.toString(mynumbers.toArray()));
myNewnumbers= new ArrayList<>();
for (Integer mynumber : mynumbers) {
myNewnumbers.add(mynumber*MUTIPLY_ELEMENT);
}
System.out.println(Arrays.toString(myNewnumbers.toArray()));
}
o/p:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
哦,看,過早的優化。我們生活在2016年,而不是1980年,您的電腦可以處理幾百萬次的乘法運算。 –
多線程與時間複雜性無關。無論是否使用多個線程,您都必須處理所有元素,因此您的時間複雜度將爲'O(n)'。可能你正在將它與並行處理混合在一起,以減少執行的總時間。 – STaefi