Java 我的排序算法说:您的代码没有在时间限制内执行。如何解决这个问题
我设计了一种算法,用于对交换次数最少的数组进行排序。数组由从1到n的连续数字组成。当我运行这个程序时,它给出了一个erorr,“您的代码没有在时间限制内执行”,如何解决这个问题Java 我的排序算法说:您的代码没有在时间限制内执行。如何解决这个问题,java,algorithm,sorting,data-structures,swap,Java,Algorithm,Sorting,Data Structures,Swap,我设计了一种算法,用于对交换次数最少的数组进行排序。数组由从1到n的连续数字组成。当我运行这个程序时,它给出了一个erorr,“您的代码没有在时间限制内执行”,如何解决这个问题 static int minimumSwaps(int[] arr) { int n = arr.length; int swap = 0; for (int j = 0; j < n; j++) { for (int i = 0; i < n; i++) {
static int minimumSwaps(int[] arr) {
int n = arr.length;
int swap = 0;
for (int j = 0; j < n; j++) {
for (int i = 0; i < n; i++) {
if (arr[i] != (i + 1)) {
int temp = arr[i];
arr[i] = arr[temp - 1];
arr[temp - 1] = temp;
swap++;
}
}
}
return swap;
}
static int minimumSwaps(int[]arr){
int n=阵列长度;
整数交换=0;
对于(int j=0;j
对于类似这样的竞争性编程问题,在开始编写任何代码之前,您应该考虑必须处理的输入大小以及算法需要的时间复杂度。对于HackerRank,大小为n的输入允许的最大时间是多少?您的代码经常混淆数组中的索引和值<例如,代码>如果(arr[i]!=(i+1)){和int temp=arr[i];
后跟arr[i]=arr[temp-1]
。数据集是以某种方式专门设计的吗?我不知道。这是一个hackerrank问题。我检查了失败的测试用例,它有一个巨大的数组大小,所以问题是时间复杂度,但我不知道如何以较少的时间复杂度或仅使用一个循环来执行我的想法。你能为这个问题提供参考吗?你应该详细说明更多关于“您的代码没有在时间限制内执行”的内容。或者(最好)您问实际问题“如何加速代码?”我想,您在排行榜框架中运行这一点与此无关。。。