【发布时间】:2025-12-12 16:30:02
【问题描述】:
我正在尝试扫描一维数组的奇异值分解 (SVD),最差的时间和空间复杂度为 O(n),而不使用任何辅助数据结构。
我设法做到这一点的唯一方法是使用嵌套循环,但这使它成为 O(n^2)
public static void svd(Integer[] array){
int count = 0;
int svd = 0;
for (int i = 0; i < array.length; i++) {
count=0;
for (int j = 0; j < array.length; j++) {
if(array[i] == array[j]){
count++;
}
if(count>(array.length/2)){
svd = array[i];
System.out.println("svd = "+svd);
}
else if(count<array.length/2){}
}
}
}
【问题讨论】:
-
为什么叫这个SVD?无论如何,您唯一的选择是基数排序。
-
作业的一部分..
标签: java arrays time-complexity svd space-complexity