I need to write a program that will open up a text file of w
I need to write a program that will open up a text file of words named \"shuffled.txt\", reads in each word into an array and sorts the array. Write the sorted array of words out to a file named sorted.txt . Time your program to figure out how long it takes to sort the words.
Solution
Code:
Method 1:
#include <bits/stdc++.h>
using namespace std;
int main(){
ifstream inf(\"shuffled.txt\");
ofstream ouf(\"sorted.txt \");
int n;
inf>>n;
string arr[n];
for(int i=0;i<n;i++){
inf>>arr[i];
}
clock_t tStart = clock();
sort(arr,arr+n);
printf(\"Time taken: %.2fs\ \", (double)(clock() - tStart)/CLOCKS_PER_SEC);
for(int i=0;i<n;i++){
ouf<<arr[i]<<endl;
}
ouf.close();
inf.close();
}
Method 2:
#include <bits/stdc++.h>
using namespace std;
int main(){
ifstream inf(\"shuffled.txt\");
ofstream ouf(\"sorted.txt \");
string s;
vector<string> arr;
for(int i=0;i<n;i++){
inf>>s;
arr.push_back(s);
}
clock_t tStart = clock();
sort(arr.begin(),arr.end());
printf(\"Time taken: %.2fs\ \", (double)(clock() - tStart)/CLOCKS_PER_SEC);
for(int i=0;i<arr.size();i++){
ouf<<arr[i]<<endl;
}
ouf.close();
inf.close();
}
NOTE:
Method 1 assumes that first line of the input file contain number of words in the file.
Method 2 doesn\'t assume that.
