一般的に空間の複雑さを分析することについて少し混乱しています。「アルゴリズムによって占有される余分なスペース」の意味がわかりません。1 のスペースとしてカウントされるのは何ですか? ここの例では
int findMin(int[] x) {
int k = 0; int n = x.length;
for (int i = 1; i < n; i++) {
if (x[i] < x[k]) {
k = i;
}
}
return k;
}
スペースの複雑さは O(n) で、配列サイズが n のためだと推測しています。
しかし、ヒープソートのようなものでは、O(1) かかります。インプレース ヒープソートにもサイズ n (n は入力のサイズ) の配列が必要ではないでしょうか? それとも、入力がすでに配列にあると想定していますか? なぜヒープソートの空間複雑度は O(1) なのですか?
ありがとう!