//Dione Torrevillas CS1A Chapter 8, P. 488, #6
/**********************************************************
* Class: CS1A
* Chapter 8 Homework - Programming Challenge #6
* Title: String Selection Sort
*
* Description:
* This program uses selection sort to put an array of 20
* names in alphabetical order.
*
* INPUT:
* No keyboard input. The names are stored in an array.
*
* OUTPUT:
* The 20 names displayed in alphabetical order.
**********************************************************/
#include <iostream>
#include <string>
using namespace std;
// Sort a string array alphabetically using selection sort.
void selectionSort( string names[ ] , int size)
{
for ( int start = 0 ; start < size - 1 ; start++ )
{
int minIndex = start;
// Find the alphabetically first remaining name.
for ( int i = start + 1 ; i < size; i++ )
{
if ( names[ i] < names[ minIndex] )
minIndex = i;
}
// Move that name into its correct position.
string temp = names[ start] ;
names[ start] = names[ minIndex] ;
names[ minIndex] = temp;
}
}
int main( )
{
const int NUM_NAMES = 20 ;
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"
} ;
// The driver program calls the modified selection sort function.
selectionSort( names, NUM_NAMES) ;
//OUTPUT - Display all of the sorted names.
cout << "Names in alphabetical order:" << endl;
for ( int i = 0 ; i < NUM_NAMES; i++ )
cout << names[ i] << endl;
return 0 ;
}
Ci8vRGlvbmUgVG9ycmV2aWxsYXMgICAgICAgICAgICAgICAgIENTMUEgICAgICAgICAgICAgICAgIENoYXB0ZXIgOCwgUC4gNDg4LCAjNgoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ2xhc3M6IENTMUEKICogQ2hhcHRlciA4IEhvbWV3b3JrIC0gUHJvZ3JhbW1pbmcgQ2hhbGxlbmdlICM2CiAqIFRpdGxlOiBTdHJpbmcgU2VsZWN0aW9uIFNvcnQKICoKICogRGVzY3JpcHRpb246CiAqIFRoaXMgcHJvZ3JhbSB1c2VzIHNlbGVjdGlvbiBzb3J0IHRvIHB1dCBhbiBhcnJheSBvZiAyMAogKiBuYW1lcyBpbiBhbHBoYWJldGljYWwgb3JkZXIuCiAqCiAqIElOUFVUOgogKiBObyBrZXlib2FyZCBpbnB1dC4gVGhlIG5hbWVzIGFyZSBzdG9yZWQgaW4gYW4gYXJyYXkuCiAqCiAqIE9VVFBVVDoKICogVGhlIDIwIG5hbWVzIGRpc3BsYXllZCBpbiBhbHBoYWJldGljYWwgb3JkZXIuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gU29ydCBhIHN0cmluZyBhcnJheSBhbHBoYWJldGljYWxseSB1c2luZyBzZWxlY3Rpb24gc29ydC4Kdm9pZCBzZWxlY3Rpb25Tb3J0KHN0cmluZyBuYW1lc1tdLCBpbnQgc2l6ZSkKewogICAgZm9yIChpbnQgc3RhcnQgPSAwOyBzdGFydCA8IHNpemUgLSAxOyBzdGFydCsrKQogICAgewogICAgICAgIGludCBtaW5JbmRleCA9IHN0YXJ0OwoKICAgICAgICAvLyBGaW5kIHRoZSBhbHBoYWJldGljYWxseSBmaXJzdCByZW1haW5pbmcgbmFtZS4KICAgICAgICBmb3IgKGludCBpID0gc3RhcnQgKyAxOyBpIDwgc2l6ZTsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKG5hbWVzW2ldIDwgbmFtZXNbbWluSW5kZXhdKQogICAgICAgICAgICAgICAgbWluSW5kZXggPSBpOwogICAgICAgIH0KCiAgICAgICAgLy8gTW92ZSB0aGF0IG5hbWUgaW50byBpdHMgY29ycmVjdCBwb3NpdGlvbi4KICAgICAgICBzdHJpbmcgdGVtcCA9IG5hbWVzW3N0YXJ0XTsKICAgICAgICBuYW1lc1tzdGFydF0gPSBuYW1lc1ttaW5JbmRleF07CiAgICAgICAgbmFtZXNbbWluSW5kZXhdID0gdGVtcDsKICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBjb25zdCBpbnQgTlVNX05BTUVTID0gMjA7CgogICAgc3RyaW5nIG5hbWVzW05VTV9OQU1FU10gPSB7CiAgICAgICAgIkNvbGxpbnMsIEJpbGwiLCAiU21pdGgsIEJhcnQiLCAiQWxsZW4sIEppbSIsCiAgICAgICAgIkdyaWZmaW4sIEppbSIsICJTdGFtZXksIE1hcnR5IiwgIlJvc2UsIEdlcmkiLAogICAgICAgICJUYXlsb3IsIFRlcnJpIiwgIkpvaG5zb24sIEppbGwiLAogICAgICAgICJBbGxpc29uLCBKZWZmIiwgIkxvb25leSwgSm9lIiwgIldvbGZlLCBCaWxsIiwKICAgICAgICAiSmFtZXMsIEplYW4iLCAiV2VhdmVyLCBKaW0iLCAiUG9yZSwgQm9iIiwKICAgICAgICAiUnV0aGVyZm9yZCwgR3JlZyIsICJKYXZlbnMsIFJlbmVlIiwKICAgICAgICAiSGFycmlzb24sIFJvc2UiLCAiU2V0emVyLCBDYXRoeSIsCiAgICAgICAgIlBpa2UsIEdvcmRvbiIsICJIb2xsYW5kLCBCZXRoIgogICAgfTsKCiAgICAvLyBUaGUgZHJpdmVyIHByb2dyYW0gY2FsbHMgdGhlIG1vZGlmaWVkIHNlbGVjdGlvbiBzb3J0IGZ1bmN0aW9uLgogICAgc2VsZWN0aW9uU29ydChuYW1lcywgTlVNX05BTUVTKTsKCiAgICAvL09VVFBVVCAtIERpc3BsYXkgYWxsIG9mIHRoZSBzb3J0ZWQgbmFtZXMuCiAgICBjb3V0IDw8ICJOYW1lcyBpbiBhbHBoYWJldGljYWwgb3JkZXI6IiA8PCBlbmRsOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTlVNX05BTUVTOyBpKyspCiAgICAgICAgY291dCA8PCBuYW1lc1tpXSA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9Cg==
stdout
Names in alphabetical order:
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