selection sort function

closed account (G60iz8AR)
How to do a selection sort and in order from main in this array function ?

#include <fstream>
#include <iostream>
#include <string>
#include <stdlib.h>
#include <ctime>
#include <algorithm>

using namespace std;
const int MAX_WORDS = 20;

void printWords( string arr[], int cnt );
void selectionSort( string arr[], int cnt );

int main( int argc, char**argv )
{
if (argc < 2 )
{
cout << "Hey you idiot! put the filename after the a.exe!\nLIKE THIS: a.exe words.txt\n";
exit(0);
}

ifstream infile;
infile.open( argv[1], ios::in );
if (!infile)
{
cout << "\nIO error attempting to open argv[1]\n";
exit(0);
}
int wordCnt=0;
string word;
string wordList[MAX_WORDS];
while( wordCnt < MAX_WORDS && infile >> word )
wordList[wordCnt++] = word;
infile.close(); // Done reading. Close it

cout << "Original order: " ;
printWords( wordList, wordCnt );

selectionSort( wordList, wordCnt );

cout << "Sorted order: " ;
printWords( wordList, wordCnt );

return 0;
} // END MAIN //###############################################################



void selectionSort( string arr[], int cnt )
{
/* for stop = cnt-2 downto 0
for i = 0 to stop
if arr[i] > arr[i+1]
swap them
*/
}

void printWords( string arr[], int cnt )
{
for (int i=0 ; i<cnt ; i++ )
cout << arr[i] << " ";
cout << endl;
}
Your algorithm is close, but you need to pay attention to when to do things: first find the smallest, then swap.

http://www.cplusplus.com/faq/sequences/sequencing/sort-algorithms/selection-sort/

Hope this helps.
Topic archived. No new replies allowed.