2016-05-22 16 views
-3

これは非常に簡単なことですが、2の累乗でループをインクリメントする方法はわかりません。プログラムは、挿入ソートを比較し、並べ替えをマージし、N、すなわち2、4、8、16、32のべき乗の増加すべきである....これは、私はこのループは、電力によってnを増加させる2の累乗でループをインクリメントする

#include <iostream> 
#include <math.h> 
using namespace std; 


int main() 
{ 
    int a,n,b; 
    double mergesort; 
    double insertionsort; 

    cout << "Enter a and b values "; 
    cin >> a >> b; 

    do 
    { 
     for(n=2; n=pow(n,++); 
     { 
     insertionsort = a*pow(n,2); 
     mergesort = b*n*log2(n); 
     } 

     cout <<"insertion sort= " << insertionsort << "merge sort= " <<mergesort; 
     cout <<"n" << n; 

    }while(insertionsort < mergesort); 

    cout << "Value of n that insertion beat merge sort is " << " n "; 
} 

答えて

2

を有するものですそれが、おかげで動作しませんでした

for (int n = 2; n <= n_max; n *= 2) { 
    //... 
} 
+0

、計算が、私は間違いなく設けられたループが必要な順序で進行しますだけでなく、あなたが他の場所で、その後ミスを持って@josh – josh

+1

権利はありませんでした:いくつかのn_maxまでの各反復2の(2,4,8,16、...) – ArchbishopOfBanterbury

+0

ええ、あなたが正しいのは間違いですが、問題は私がそれを実行するためにそれを実装する方法です挿入ソートがマージソートよりも小さい – josh

関連する問題