Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/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
Algorithm 大(O)符号-哪一个是正确的_Algorithm_Sorting_Big O - Fatal编程技术网

Algorithm 大(O)符号-哪一个是正确的

Algorithm 大(O)符号-哪一个是正确的,algorithm,sorting,big-o,Algorithm,Sorting,Big O,我正在努力学习BigO符号。在网上搜索一些文章时,我发现了两篇不同的文章 严格地说,就循环而言,它们似乎具有几乎相同的流。 比如说 [A] 的代码如下所示,它是在JS中完成的 function allPairs(arr) { var pairs = []; for (var i = 0; i < arr.length; i++) { for (var j = i + 1; j < arr.length; j++) { pairs

我正在努力学习BigO符号。在网上搜索一些文章时,我发现了两篇不同的文章

严格地说,就循环而言,它们似乎具有几乎相同的流。 比如说

[A] 的代码如下所示,它是在JS中完成的

function allPairs(arr) {
    var pairs = [];
    for (var i = 0; i < arr.length; i++) {
        for (var j = i + 1; j < arr.length; j++) {
            pairs.push([arr[i], arr[j]]);
        }
    }

    return pairs;
}
[B] 的代码如下所示,它是用C完成的-整个代码是

站点A上的文章提到时间复杂性为^2,而站点B上的文章提到其O1/2·n2

哪一个是对的


谢谢

假设O1/2·n2意味着O1/2·n^2,两个时间复杂度相等。请记住,BigO表示法并不关心常数,因此两种算法都在^2上。

假设O1/2·n2表示O1/2·n^2,则两种时间复杂度相等。请记住,BigO表示法并不关心常量,因此这两种算法都在^2上。

您没有仔细阅读。文章B说该算法执行了大约N²/2次比较,并继续解释这是开着的。

您没有仔细阅读。文章B说该算法执行了大约N²/2比较,并继续解释这是开的。

是什么使示例B O1/2 N^2?有两个嵌套循环,这足以说明它是开的^2。我不在乎1/2常量的含义,因为正如我之前所说,常量对于大O表示法并不重要。是什么使示例B O1/2 n^2?有两个嵌套循环,这足以说明它在^2上。我不在乎1/2常量的含义,因为正如我之前所说的,常量对于Big-O表示法并不重要。
  for(int i = 0; i < n-1 ; i++) {
    char min = A[i]; // minimal element seen so far
    int min_pos = i; // memorize its position
    // search for min starting from position i+1
    for(int j = i + 1; j < n; j++) 
      if(A[j] < min) {
        min = A[j];
        min_pos = j;
      }
    // swap elements at positions i and min_pos
    A[min_pos] = A[i];
    A[i] = min;
  }