------------------------------------------------------------------------------
MC logo
Integer Select Sort
[^] CSc 220 Home
------------------------------------------------------------------------------
[Introduction] [Boolean and Control] [Functions] [Arrays and Pointers] [Dynamic Arrays] [Array Errors] [Command Array] [Standard Containers] [Structs and Classes] [Automatic Pointer] [Multi-File Programs] [Copying Objects] [Templates] [Inheritance] [Plain C I/O] [Type Odds And Ends] [Plain C Strings] [File I/O]
[Array Echo] [Basic Pointers] [Swap Using Pointers] [Arrays and Pointers] [Array Passing] [Integer Select Sort] [Integer Quick Sort] [Integer Library Sort] [Pointers and References]
simintsrc.cc
#include <iostream>

using namespace std;

/* 
 * Program to read a list of integers from standard input and print them in
 * sorted order.  This uses a simple selection sort.
 *
 * Author: Tom Bennet
 */

/* 
 * Swap function for sorting.
 */
void swap(int *a, int *b)
{
        int tmp;                                /* Exchange temp value. */

        tmp = *a;
        *a = *b;
        *b = tmp;       
}

/* 
 * Sort the array.  It receives a pointer to the start of the data and the
 * number of items.
 */
void sort(int *data, int size)
{
        int minloc;                     /* Loc of minimum. */

        for(minloc = 0; minloc < size - 1; ++minloc) {
                int scan;
                for(scan = minloc + 1; scan < size; ++scan)
                        if(data[minloc] > data[scan])
                                swap(&data[minloc], &data[scan]);
        }
}

/*
 * Main program.  Reads the integers into an array, sorts them, and
 * prints them out.
 */
const int MAX_NUM_INTS = 100;
int main()
{
        int ints[MAX_NUM_INTS];         // Where the numbers go.
                
        // Read them in.
        int i;
        for(i = 0; i < MAX_NUM_INTS && cin >> ints[i]; ++i);
        int numints = i;

        // Sort them.
        sort(ints, numints);

        // Print them.
        cout << "==================" << endl;
        for(int i = 0; i < numints; ++i)
                cout << ints[i] << endl;
        cout << "==================" << endl;
}