循环问题的C#气泡排序链表
所以我有这个代码,它工作得很好,但我很难理解它 我得到了比较两个int值的部分,如果需要,我们会替换它们。但我不懂两个for循环。循环问题的C#气泡排序链表,c#,C#,所以我有这个代码,它工作得很好,但我很难理解它 我得到了比较两个int值的部分,如果需要,我们会替换它们。但我不懂两个for循环。 正如您所说,if语句交换2个节点的数据,如果它们出现故障 内部循环将该if从开始(start)到end,按该顺序应用于每个节点。这意味着最大值现在将位于端 外部循环将此过程应用于连续的结束s,从后向前工作。这意味着在每次迭代中,列表的排序部分都是它的一个较长后缀,直到它覆盖整个列表 正如您所说,if语句交换2个节点的数据,如果它们出现故障 内部循环将该if从开始(
- 正如您所说,
语句交换2个节点的数据,如果它们出现故障if
- 内部循环将该
从开始(if
)到start
,按该顺序应用于每个节点。这意味着最大值现在将位于end
端
- 外部循环将此过程应用于连续的
s,从后向前工作。这意味着在每次迭代中,列表的排序部分都是它的一个较长后缀,直到它覆盖整个列表结束
- 正如您所说,
语句交换2个节点的数据,如果它们出现故障if
- 内部循环将该
从开始(if
)到start
,按该顺序应用于每个节点。这意味着最大值现在将位于end
端
- 外部循环将此过程应用于连续的
s,从后向前工作。这意味着在每次迭代中,列表的排序部分都是它的一个较长后缀,直到它覆盖整个列表结束
end
在内循环结束后被分配p
的值。这是否意味着外循环仅被触发2次?否;它一直持续到最后才开始。嘿,斯科特,你知道这个算法的BigO符号是什么吗?谢谢你回答斯科特。。。那么在外循环中,这个最后的平均值是什么?在外循环的第二次循环中会变成什么?end
在内循环结束后被分配p
的值。这是否意味着外循环仅被触发2次?否;它一直持续到最后才开始。嘿,斯科特,你知道这个算法的BigO符号是什么吗?
public void BubbleSortExData()
{
Node end = null;
Node p = null;
Node q = null;
for (end = null ; end != start.link; end = p)
{
for (p = start; p.link != end; p = p.link)
{
q = p.link;
if (p.data > q.data)
{
int temp = p.data;
p.data = q.data;
q.data = temp;
}
}
}
}