首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >冒泡排序算法的空间复杂度

冒泡排序算法的空间复杂度
EN

Stack Overflow用户
提问于 2012-12-05 19:07:37
回答 7查看 8.3K关注 0票数 5

我正在尝试对冒泡排序算法的空间复杂度进行研究,我知道冒泡排序算法的空间复杂度是O(1)给定下面的冒泡排序算法,我如何才能改变冒泡排序算法的代码,使空间或内存复杂度达到O(n)或O(n平方),等等我需要了解空间复杂度在哪里起作用...thanks

代码语言:javascript
复制
 public void bubbleSort(int[] arr) {
    boolean swapped = true;
    int j = 0;
    int tmp;

    while (swapped) {

        swapped = false;
        j++;

        for (int i = 0; i < arr.length - j; i++) {
            if (arr[i] > arr[i + 1]) {
                tmp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = tmp;
                swapped = true;
            }
        }
    }
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-12-05 19:10:53

空间复杂度是算法需要多少额外内存的度量。

如果要分配一个大小为n的额外数组(当n是输入数组的可变大小时),空间复杂度将为O(n)

票数 10
EN

Stack Overflow用户

发布于 2012-12-05 19:09:40

如果你想增加空间复杂度,你只需要浪费内存,例如,添加一些代码来使用更多的内存。

它降低了空间复杂度,这是很难的。

票数 5
EN

Stack Overflow用户

发布于 2012-12-05 19:31:48

我认为它值得一个答案,因为它在大O符号上有一些输入:

你的算法已经是O(n) O(n^2)

这是因为O(1)O(n)的子集,两者都是O(n^2)的子集

为甚麽呢?

请注意,O(f(n))是一组具有“f(N)的渐近上界”的函数(直观定义,而不是形式定义)。

因此,对于每个g(n)<h(n)<f(n),如果h(n)g(n)的渐近上界,则f(n)也是它的渐近上界。

因此,如果g(n)O(h(n))中,那么它也在O(f(n))

在您的例子中,如果复杂度函数T(n)O(1)中,那么它也在O(n)

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

https://stackoverflow.com/questions/13721890

复制
相关文章

相似问题

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