@zdvurechensky

Время программы 2,062 надо 2 сек, как сделать?

#include <iostream> 
#include <fstream> 
#include <algorithm> 
using namespace std; 
int main() 
{ 
int N; 
fstream fin, fout; 
fin.open("input.txt", ios::in); 
fout.open("output.txt", ios::out); 
fin>>N; 
int *A= new int[N]; 
for(int i=0;i<N;i++) 
{ 
fin>>A[i]; 
} 
sort(A,A+N); 
for(int i=0;i<N;i++) 
{ 
fout<<A[i]<<" "; 
} 
delete [] A; 
fin.close(); 
fout.close(); 
return 0; 
}
  • Вопрос задан
  • 153 просмотра
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
Можно немного сэкономить, если прочитать сразу весь файл в буфер, а в массив загонять через std::stringstream или вообще руками. Аналогично и с записью - сначала преобразуете в текстовый буфер, затем оптом пишете в файл одной операцией. Файл при этом открывайте как бинарный.
Возможно, если применить другой алгоритм сортировки то же будет увеличение производительности. В стандартной библиотеке далеко не самый быстрый алгоритм.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы