小编Nic*_*ick的帖子

证明/反驳BigO和BigTheta

我有充分理解如何证明以下某些陈述的问题.

例如,我有一个声明:n^2logn = O(n^2).纠正我,如果我错了,但这个规定,n^2bigOn^2logn.意味着n^2增长得快于n^2logn.现在我们将如何证明这一点?我假设我需要使用感应证明,我试图使用但是在这个过程中卡住了.我可以重写这句话n^2logn <= n^2吗?

是否有可能使用归纳法反驳某些东西?例如,反驳n!=O(n^n).或者通过简单地表明任意值(例如大于2)不满足该陈述来反驳该陈述是否有效?

最后为了清楚起见,bigTheta声明方程式在增长正确时是等价的?

algorithm proof induction

1
推荐指数
1
解决办法
3520
查看次数

C++排序数组为true false

我已经被分配了两个类似的任务,这应该很容易,但我需要澄清我能用c ++做什么和不做什么.

任务1:假设您有一个包含两个不同键的n个元素的数组,true和false.给出一个O(n)算法来重新排列列表,以便所有假元素都在真元素之前.您可以仅使用恒定的额外空间.

对于任务2,我需要做同样的事情,但现在有一个额外的键"可能".所以我需要对数组进行排序,以便在O(n)之前可能先假,并且可能先于真.

我决定在第一个任务上使用插入排序,在第二个任务上快速排序.我的第一个问题是,创建一个数组并使用true false和/或可能的值对它进行排序是否理想.在我看来,我想要改变false,true和0,1,2的所有值,并按数字升序排序数组.我会通过首先遍历数组并更改值然后排序后执行此操作.什么是改变价值观的最佳方式(如果需要的话).这会使算法保持在O(n)时间吗?

谢谢您的帮助!

c++ arrays sorting algorithm

1
推荐指数
1
解决办法
1530
查看次数

通过能量驱动采样(SEEDS)提取的超像素

我对通过能量驱动采样(SEEDS)提取的超像素感兴趣,这是一种使用超像素进行图像分割的方法.这也是OpenCV用于创建超像素的内容.我在查找SEEDS算法背后的文档时遇到了麻烦.OpenCV提供了一个非常一般的描述,可以在这里找到.

我正在寻找关于SEEDS功能的更深入的描述(无论是一般的演练还是数学解释).任何有关该算法的链接或想法将非常感谢!我似乎找不到任何好材料.谢谢!

opencv image-segmentation superpixels

1
推荐指数
1
解决办法
1016
查看次数

接收函数"未在此范围内声明"的错误

我正在使用C++进行冒泡排序,并且我在将值作为指针传递时遇到问题.这是我的代码:

#include <iostream>
using namespace std;

int values[9] = {7, 3, 9, 4, 6, 1, 2, 8, 5};

void printValues(){
    for (int i=0; i<9; i++)
       cout<<values[i]<<endl;
}


void sortValues(){
    for(int i=0;i<9;i++){
        for(int j=0;j<8;j++){
            if (values[i]>values[j]){
                swapValues(values[i], values[j]);
                printValues();
            }
        }
    }
}

void swapValues(int *i, int *j){
    int temp = *i;
    *i = *j;
    *j = temp;
}

int main(){
    cout << "Before: " <<endl;
    printValues();
    sortValues();
    cout << "After: " <<endl;
    printValues();

}
Run Code Online (Sandbox Code Playgroud)

当我按原样运行代码时,收到错误消息:'swapValues'未在此范围内声明.我试过改变我添加星号的地方(swapValues(values [i],values [j]);)但这似乎让事情变得更糟.有任何想法吗?谢谢!

c++

-2
推荐指数
1
解决办法
1190
查看次数