Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环问题的C#气泡排序链表_C# - Fatal编程技术网

循环问题的C#气泡排序链表

循环问题的C#气泡排序链表,c#,C#,所以我有这个代码,它工作得很好,但我很难理解它 我得到了比较两个int值的部分,如果需要,我们会替换它们。但我不懂两个for循环。 正如您所说,if语句交换2个节点的数据,如果它们出现故障 内部循环将该if从开始(start)到end,按该顺序应用于每个节点。这意味着最大值现在将位于端 外部循环将此过程应用于连续的结束s,从后向前工作。这意味着在每次迭代中,列表的排序部分都是它的一个较长后缀,直到它覆盖整个列表 正如您所说,if语句交换2个节点的数据,如果它们出现故障 内部循环将该if从开始(

所以我有这个代码,它工作得很好,但我很难理解它

我得到了比较两个int值的部分,如果需要,我们会替换它们。但我不懂两个for循环。

  • 正如您所说,
    if
    语句交换2个节点的数据,如果它们出现故障
  • 内部循环将该
    if
    从开始(
    start
    )到
    end
    ,按该顺序应用于每个节点。这意味着最大值现在将位于
  • 外部循环将此过程应用于连续的
    结束
    s,从后向前工作。这意味着在每次迭代中,列表的排序部分都是它的一个较长后缀,直到它覆盖整个列表
      • 正如您所说,
        if
        语句交换2个节点的数据,如果它们出现故障
      • 内部循环将该
        if
        从开始(
        start
        )到
        end
        ,按该顺序应用于每个节点。这意味着最大值现在将位于
      • 外部循环将此过程应用于连续的
        结束
        s,从后向前工作。这意味着在每次迭代中,列表的排序部分都是它的一个较长后缀,直到它覆盖整个列表

      感谢您回答Scott。。。那么在外循环中,这个最后的平均值是什么?在外循环的第二次循环中会变成什么?
      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;
                      }
                  }
              }
          }