Talk About Network



Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C++ Moderated > Efficient sorti...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 1 of 5 Topic 9530 of 9593
Post > Topic >>

Efficient sorting

by "C++ Newbie" <newbie.cpp@[EMAIL PROTECTED] > Apr 22, 2008 at 03:21 PM

Hello,

In another exercise I was trying, I am trying to write an efficient
sorting algorithm.

Here's mine, with a random number generator at the end to make
testfiles. How do I improve the efficiency of the sorting process?
I've read about the various techniques but without statistical
analysis it is not immediately clear which is best or if there is
indeed a better way than the known best.

Example: Number of operations with a random seed of 0 and a 100,000
line file: 704982704 (assuming my definition of operations is the same
as people who claim nlog(n) - n^2 operations)

Thanks for any input.

// This program sorts a vector of numbers in ascending order
#include <fstream>
#include <stdlib.h>
#include <string>
#include <iostream>
#include <math.h>

using namespace std;

int main()
{
string line;
int i=0, count = 0, temp_int2;

fstream myfile("vector_in.txt");
// Read in number of lines
while (!myfile.eof())
	{
	getline(myfile,line);
	count++;
	}

count = count - 1;
myfile.clear();                 // forget we hit the end of file
myfile.seekg(0, ios::beg);      // move to the start of the file
 cout << "Number of file lines = "<< count << "\n";
int vector_in[count];

// Read in data
while (i < count)
	{
	getline(myfile,line);
	vector_in[i] = atoi(line.c_str());
	i++;
	}

// Swapping sort

int temp_int = 0, operations = 0;

for (int j = 0; j < count; j++)
	{
	for (i = j+1; i < count; i++)
		{
		operations++;
		if (vector_in[i] < vector_in[j])
			{
			temp_int = vector_in[i];
			vector_in[i] = vector_in[j];
			vector_in[j] = temp_int;
			}
		}
	}

for (i = 0; i < count; i++)
cout << vector_in[i] << "\n";
cout << "Number of operations = " << operations << "\n";

return 0;
}

Random number generator:
===================

// This program sorts a vector of numbers in ascending order
#include <fstream>
#include <stdlib.h>
#include <string>
#include <iostream>
#include <math.h>

using namespace std;

int main()
{
string line;
int i=0, count = 0, temp_int2, seed, length;

// Randomly generate file?
fstream myfile("vector_in.txt", ios::out);
cout << "Random seed value less than " << RAND_MAX << "\n";
cin >> seed;
cout << "Length of testfile?" <<"\n";
cin >> length;
//	system ("rm vector_in.txt");
	{
	for (i = 0; i < length; i++)
		{
		temp_int2 = rand();
		myfile << temp_int2 << "\n";
		}
	myfile<<std::flush;
	myfile.close();
	}

cout << "File generated.\n";
return 0;
}




-- 
      [ See http://www.gotw.ca/resources/clcm.htm
for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]




 5 Posts in Topic:
Efficient sorting
"C++ Newbie" &l  2008-04-22 15:21:08 
Re: Efficient sorting
Thomas Maeder <maeder@  2008-04-22 22:19:12 
Re: Efficient sorting
Martin York <Martin.Yo  2008-04-23 13:10:25 
Re: Efficient sorting
Markus Moll <markus.mo  2008-04-24 15:19:37 
Re: Efficient sorting
"Jeff Baker" &l  2008-04-25 03:39:00 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Wed May 14 6:51:00 CDT 2008.