[英]How can I sort a list with data from another list adding at the end?
实现一个名为 sort 的实例方法,假设列表包含大于 0 的值且其所有元素都不同,它使用以下策略返回一个新的有序列表:“从列表中选择次要元素并将其放在结果列表”。 请注意,不应修改原始列表。
public IntegerLinkedList sort(IntegerLinkedList l){
IntegerLinkedList l2 = new IntegerLinkedList ();
int min = Integer.MAX_VALUE;
int min_prev = Integer.MIN_VALUE;
int pos;
for (int i=0; i<l.length(); i++){
pos=0;
while (pos<l.length()) {
if ((l.element(pos) < min) & (l.element(pos) > min_prev)){
min = l.element(pos);
}
pos++;
}
min_prev=min;
l2.AddAtTheEnd(min);
}
return l2;
}
List: 2 -> 8 -> 4 -> 6 -> 1 -> 3 -> 7 -> 9 -> 5 -> 10
第一次在大学看到 Java 中的列表。 所以我的问题是我一直无法停止将 1 添加到 l2 。 这段代码是我所拥有的想法,但它返回一个 10 长的列表,里面全是 1。有时 1 不小于 1 也不大于 1。我需要“避免”最后一个最小的相加数字,所以我可以添加其他大于 min 的。
谢谢!
在第一次运行 for 循环后, min
为 1。它永远不会被设置为任何其他值: (l.element(pos) < 1)
对于除 1 之外的所有元素都是 false。
您需要在循环的每次运行中重置min
的值。
for (int i=0; i<l.length(); i++){
int min = Integer.MAX_VALUE;
pos=0;
while (pos<l.length()) {
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.