Хорошо, мои 2цента.
Big-O, скорость увеличения ресурса, потребляемого программой, w.r.t. Проблема инстанции размер
Ресурс: Может быть общее время ЦП, может быть максимальное пространство ОЗУ. По умолчанию относится к времени процессора.
Скажем, проблема "Найти сумму",
int Sum(int*arr,int size){
int sum=0;
while(size-->0)
sum+=arr[size];
return sum;
}
problem-instance = {5,10,15} ==> problem-instance-size = 3, итерации в цикле = 3
проблема-экземпляр = {5,10,15,20,25} ==> проблема-экземпляр-размер = 5 итераций в цикле = 5
При вводе размера «n» программа растет со скоростью «n» итераций в массиве. Следовательно, Big-O - это N, выраженное как O (n)
Скажите, что проблема в том, чтобы найти комбинацию,
void Combination(int*arr,int size)
{ int outer=size,inner=size;
while(outer -->0) {
inner=size;
while(inner -->0)
cout<<arr[outer]<<"-"<<arr[inner]<<endl;
}
}
problem-instance = {5,10,15} ==> problem-instance-size = 3, всего итераций = 3 * 3 = 9
problem-instance = {5,10,15,20,25} ==> problem-instance-size = 5, всего итераций = 5 * 5 = 25
При вводе размера «n» программа растет со скоростью «n * n» итераций в массиве. Следовательно, Big-O - это N 2 , выраженное как O (n 2 )