//Roman Lara Delgado CSC5 Chapter 8, P.487, #6
//
/*******************************************************************************
*
* Arrange Names In Alphabetical Order
*_______________________________________________________________________________
* This program arranges in alphabetical order from A
* through Z a set of names. Every name has a last name
* and a first name.
* ______________________________________________________________________________
* INPUT
* names[] : An arrange that holds the names.
*
* OUTPUT
* A list of the names in alphabetical order.
* ******************************************************************************
* FUNCTION
* ******************************************************************************
* void selectionSort(string[], int)
* ------------------------------------------------------------------------------
* This function arranges the data in ascending order
*
* PARAMETERS:
* array[] : Array to arrange it in ascending order.
* size : The number of elements of the array.
*******************************************************************************/
#include <iostream>
#include <string>
using namespace std;
void selectionSort( string[ ] , int ) ; //Function prototype.
int main( )
{
const int NUM_NAMES = 20 ; //Size of the array.
//Array that holds the names.
string names[ NUM_NAMES] = { "Collins, Bill" , "Smith, Bart" , "Allen, Jim" ,
"Griffin, Jim" , "Stamey, Marty" , "Rose, Geri" ,
"Taylor, Terri" , "Johnson, Jill" , "Allison, Jeff" ,
"Looney, Joe" , "Wolfe, Bill" , "James, Jean" ,
"Weaver, Jim" , "Pore, Bob" , "Rutherford, Greg" ,
"Javens, Renee" , "Harrison, Rose" , "Setzer, Cathy" ,
"Pike, Gordon" , "Holland, Beth" } ;
selectionSort( names, NUM_NAMES) ; //Sorting the names.
//Output results
for ( int count = 0 ; count < NUM_NAMES; count++ )
{
cout << names[ count] << endl;
}
return 0 ;
}
void selectionSort( string array[ ] , int size)
{
int startScan;
int minIndex;
string minValue;
for ( startScan = 0 ; startScan < ( size - 1 ) ; startScan++ )
{
minIndex = startScan;
minValue = array[ startScan] ;
for ( int index = startScan + 1 ; index < size; index++ )
{
if ( array[ index] < minValue)
{
minValue = array[ index] ;
minIndex = index;
}
}
array[ minIndex] = array[ startScan] ;
array[ startScan] = minValue;
}
}
Ly9Sb21hbiBMYXJhIERlbGdhZG8JCQkJCUNTQzUJCQkJQ2hhcHRlciA4LCBQLjQ4NywgIzYKLy8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKgoqIEFycmFuZ2UgTmFtZXMgSW4gQWxwaGFiZXRpY2FsIE9yZGVyCipfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiogVGhpcyBwcm9ncmFtIGFycmFuZ2VzIGluIGFscGhhYmV0aWNhbCBvcmRlciBmcm9tIEEKKiB0aHJvdWdoIFogYSBzZXQgb2YgbmFtZXMuIEV2ZXJ5IG5hbWUgaGFzIGEgbGFzdCBuYW1lCiogYW5kIGEgZmlyc3QgbmFtZS4KKiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKiBJTlBVVAoqCW5hbWVzW10gOiBBbiBhcnJhbmdlIHRoYXQgaG9sZHMgdGhlIG5hbWVzLgoqIAoqIE9VVFBVVAoqCUEgbGlzdCBvZiB0aGUgbmFtZXMgaW4gYWxwaGFiZXRpY2FsIG9yZGVyLgoqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqCQkJCQkJRlVOQ1RJT04KKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKgl2b2lkIHNlbGVjdGlvblNvcnQoc3RyaW5nW10sIGludCkKKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKglUaGlzIGZ1bmN0aW9uIGFycmFuZ2VzIHRoZSBkYXRhIGluIGFzY2VuZGluZyBvcmRlcgoqCQoqCVBBUkFNRVRFUlM6CioJCWFycmF5W10gOiBBcnJheSB0byBhcnJhbmdlIGl0IGluIGFzY2VuZGluZyBvcmRlci4KKgkJc2l6ZQk6IFRoZSBudW1iZXIgb2YgZWxlbWVudHMgb2YgdGhlIGFycmF5LgkKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgc2VsZWN0aW9uU29ydChzdHJpbmdbXSwgaW50KTsJLy9GdW5jdGlvbiBwcm90b3R5cGUuCgppbnQgbWFpbigpCnsKCWNvbnN0IGludCBOVU1fTkFNRVMgPSAyMDsJLy9TaXplIG9mIHRoZSBhcnJheS4KCQoJLy9BcnJheSB0aGF0IGhvbGRzIHRoZSBuYW1lcy4KCXN0cmluZyBuYW1lc1tOVU1fTkFNRVNdID0geyJDb2xsaW5zLCBCaWxsIiwgIlNtaXRoLCBCYXJ0IiwgIkFsbGVuLCBKaW0iLAoJCQkJCQkJICAgIkdyaWZmaW4sIEppbSIsICJTdGFtZXksIE1hcnR5IiwgIlJvc2UsIEdlcmkiLAoJCQkJCQkJICAgIlRheWxvciwgVGVycmkiLCAiSm9obnNvbiwgSmlsbCIsICJBbGxpc29uLCBKZWZmIiwKCQkJCQkJCSAgICJMb29uZXksIEpvZSIsICJXb2xmZSwgQmlsbCIsICJKYW1lcywgSmVhbiIsCgkJCQkJCQkgICAiV2VhdmVyLCBKaW0iLCAiUG9yZSwgQm9iIiwgIlJ1dGhlcmZvcmQsIEdyZWciLAoJCQkJCQkJICAgIkphdmVucywgUmVuZWUiLCAiSGFycmlzb24sIFJvc2UiLCAiU2V0emVyLCBDYXRoeSIsCgkJCQkJCQkgICAiUGlrZSwgR29yZG9uIiwgIkhvbGxhbmQsIEJldGgifTsKCglzZWxlY3Rpb25Tb3J0KG5hbWVzLCBOVU1fTkFNRVMpOyAvL1NvcnRpbmcgdGhlIG5hbWVzLgoKCS8vT3V0cHV0IHJlc3VsdHMKCWZvcihpbnQgY291bnQgPSAwOyBjb3VudCA8IE5VTV9OQU1FUzsgY291bnQrKykKCXsKCQljb3V0IDw8IG5hbWVzW2NvdW50XSA8PCBlbmRsOwoJfQoJcmV0dXJuIDA7Cn0KCnZvaWQgc2VsZWN0aW9uU29ydChzdHJpbmcgYXJyYXlbXSwgaW50IHNpemUpCnsKCWludCBzdGFydFNjYW47CglpbnQJbWluSW5kZXg7CglzdHJpbmcgbWluVmFsdWU7CgoJZm9yKHN0YXJ0U2NhbiA9IDA7IHN0YXJ0U2NhbiA8IChzaXplIC0gMSk7IHN0YXJ0U2NhbisrKQoJewoJCW1pbkluZGV4ID0gc3RhcnRTY2FuOwoJCW1pblZhbHVlID0gYXJyYXlbc3RhcnRTY2FuXTsKCgkJZm9yIChpbnQgaW5kZXggPSBzdGFydFNjYW4gKyAxOyBpbmRleCA8IHNpemU7IGluZGV4KyspCgkJewoJCQlpZihhcnJheVtpbmRleF0gPCBtaW5WYWx1ZSkKCQkJewoJCQkJbWluVmFsdWUgPSBhcnJheVtpbmRleF07CgkJCQltaW5JbmRleCA9IGluZGV4OwoJCQl9CgkJfQoJCWFycmF5W21pbkluZGV4XSA9IGFycmF5W3N0YXJ0U2Nhbl07CgkJYXJyYXlbc3RhcnRTY2FuXSA9IG1pblZhbHVlOwoJfQp9Cg==
stdout
Allen, Jim
Allison, Jeff
Collins, Bill
Griffin, Jim
Harrison, Rose
Holland, Beth
James, Jean
Javens, Renee
Johnson, Jill
Looney, Joe
Pike, Gordon
Pore, Bob
Rose, Geri
Rutherford, Greg
Setzer, Cathy
Smith, Bart
Stamey, Marty
Taylor, Terri
Weaver, Jim
Wolfe, Bill