首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是实现错误的编程吗?

这是实现错误的编程吗?
EN

Stack Overflow用户
提问于 2015-05-12 12:19:48
回答 1查看 114关注 0票数 0

我在学校为短跑练习做了下面的算法。

代码语言:javascript
复制
//Bubble Sort (My code)
static void _BubbleSort(int[] a)
{
    for (int i = 0; i < a.Length - 1; i++)
    {
        for (int j = 0; j < a.Length - 1 - i; j++)
        {
            if (a[j] > a[j + 1])
            {
                swap(a, j);
            }
        }
    }
}

但是当我查看互联网时,我看到了下面不同的算法。我在互联网上发现的算法使用了不同的"for“循环,如下所示。我的循环是嵌套的,但下面的代码不是嵌套的。

代码语言:javascript
复制
public void BubbleSort(int[] b)
{
    for (int pass = 1; pass < b.Length; pass++) // passes

        for (int i = 0; i < b.Length - 1; i++) // one pass

            if (b[i] > b[i + 1]) // one comparison
                Swap(b, i); // one swap
}

我想问的是,我的代码是否是错误编程的一个例子?还是我的大脑和你们的电脑科学不同?顺便说一句,我是文科学生,如果你不知道的话。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-12 12:21:44

我想问的是,我的代码是否是错误编程的一个例子?

你的代码几乎是一样的。不同之处在于,您(正确地)使用花括号显式地声明代码块,而另一个示例则没有。一个问题是循环边界检查。

@Sriram还指出了这样一个事实,即您的循环使用a.Length - 1 - i,而后者只是检查b.Length - 1,这对您来说并不是必要的,并且会导致循环过早结束。使用第二个示例中的后一种方法。

除了您不应该在方法开始时使用_ (这只是一个命名转换)之外,您的算法是相同的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30190701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档