【问题标题】:pseudocode for loop to java for loop伪代码 for 循环到 java for 循环
【发布时间】:2014-08-10 00:57:36
【问题描述】:

如何将以下伪代码转换为 java 代码:

for k:=0 to (j - i - 1)
{

    a[j-k] :=a[j-k-1]

}

这是来自离散数学书籍的插入排序代码的一部分,我很困惑是否应该将 k++k-- 或其他内容作为 java for 循环的一部分放在 to 语句之后

【问题讨论】:

  • 我发布了一个答案。但是,如果您唯一关心的是 k++ 或 k-- 是否是问题所在,那么实际上只需尝试两者并查看哪个有效。
  • 我没有投反对票,但这是你应该能够从任何 Java 教程中弄清楚的初学者级别的基本问题。这里的每个人都是志愿者,你应该做基础研究,而不是问可以在互联网上 1000 个其他地方轻松回答的问题。请阅读FAQHow to Ask。 SO 不是一个教程网站。
  • 一个简单的谷歌搜索就能提供答案。

标签: java for-loop insertion-sort


【解决方案1】:

伪代码:

FOR k := 0 to (j - i - 1)
   a[j - k] := a[j - k - 1]
END FOR

将转换为 Java 代码:

for (int k = 0; k <= (j - i - 1); k++){
   a[j - k] = a[j - k - 1];
}

【讨论】:

    【解决方案2】:

    插入排序背后的想法是,如果当前元素更小,则继续将当前元素与其前一个元素进行比较;交换。如果数组按降序排序,插入排序的时间复杂度最差,O(n^2),最佳时间复杂度的时间复杂度 O(n)。

    以下代码描述了插入排序。

          int key,temp,i,j; 
            for (int i = 1; i < arr.length; i++) {
                 key = arr[i];
                 j = l - 1;
                while (j >= 0 && key < arr[j]) {
                     temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                    j--;
                }
            }
    

    您必须将 i =1 和 j 设置为之前的值,比较,如果 arr[i]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-27
      • 2015-03-21
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多