Javascript 选择排序算法不工作…警告…I';我是个新手
我的算法不起作用,我对所有的算法和javascript都是新手,我只是不知道为什么它不起作用 这是数组(23、19、35、12、30) 最大值=0 这是我所拥有的Javascript 选择排序算法不工作…警告…I';我是个新手,javascript,algorithm,selection,Javascript,Algorithm,Selection,我的算法不起作用,我对所有的算法和javascript都是新手,我只是不知道为什么它不起作用 这是数组(23、19、35、12、30) 最大值=0 这是我所拥有的 For K= 0 to n – 2 MAX = 0 For j = 0 to n – k - 2 If item[j] > item[MAX] MAX = item[j]
For K= 0 to n – 2
MAX = 0
For j = 0 to n – k - 2
If item[j] > item[MAX]
MAX = item[j]
end if
end for
swap n - k - 2 with item[MAX]
end for
end SelectionSort
我哪里出错了?谢谢
此外,如果有人能告诉我如何在跟踪表中使用它,我会非常高兴
问候
Craig在这个表达式中使用max会导致问题项[max],它将是j。请考虑一下,然后像这样重试,选择排序
var-arr=新数组(23,19,35,12,30);
温度=0;
对于(k=0;karr[j])
{
温度=arr[k];
arr[k]=arr[j];
arr[j]=温度;
}
}
}
对于(k=0;k
我相信您的代码中有一些错误。首先,两个位置的上限都应该是n-k-1,而不是n-k-2(这样,如果索引为n-k-1的元素已经是最大值,就不会移动它)。此外,您还应将项[n-k-1]与项[MAX](而不是您所写的索引)交换。我相信这样做应该会奏效:
For K= 0 to n – 1
MAX = 0
For j = 0 to n – k - 1
If item[j] > item[MAX]
MAX = item[j]
end if
end for
swap item[n - k - 1] with item[MAX]
end for
end SelectionSort
如果这是家庭作业,你应该给它贴上这样的标签。对不起,我也是堆栈溢出的新手。这是咖啡脚本吗?还是伪代码?伪代码,我不知道还有哪一个是有效的,你能把它显示为伪代码吗?。。。这样我就可以把它放到跟踪表中并理解它了?我希望这会对你有所帮助,所以如果我把它放到跟踪表中,并对它进行测试,我会怎么做呢?对不起,我是一个完全的算法新手,我真的无法理解它们。
For K= 0 to n – 1
MAX = 0
For j = 0 to n – k - 1
If item[j] > item[MAX]
MAX = item[j]
end if
end for
swap item[n - k - 1] with item[MAX]
end for
end SelectionSort