2015-10-05 2 views
-2

Я новичок в сложности времени в алгоритмах. Это код для подсчета количества слов в текстовом файле. Моя проблема заключается в том, что каждый раз, когда моя программа печатает больше, чем один фактический подсчет слов в файле, например, если у меня есть 11 слов в моем файле он печатает 12.Какова временная сложность этой программы?

#include<fstream> 
#include<iostream> 
#include<string> 
using namespace std; 
/* main function */ 
void main() 
{ 
    ifstream inFile; //file file name 
    string fileName; 
     string word; 
     int count = 0; 
     inFile.open("example.txt"); 
     while(!inFile.eof()) 
      { 
      inFile >> word; 
        ++count; 
       } 
    cout << "Number of words in file is " << count<<endl; 
inFile.close(); 

} 
//this file is for counting the number of words in a text file** 

ответ

1

Первое первого: Why is iostream::eof inside a loop condition considered wrong? Это будет ответьте на вопрос о дополнительном счете.

Затем подходит к сложности, так как он будет идти, хотя каждые N слов, пока не достигнет конца файла, это будет сделано в O (N) время

Кроме того, void main() не правовой C++, main следует вернуть int

Смежные вопросы