[ create a new paste ] login | about

Link: http://codepad.org/NKJoVZGe    [ raw code | output | fork ]

C++, pasted on Feb 13:
#include <algorithm>
#include <vector>

class Flight
{
private:
    // other variables omitted
    static int flightCounter;
    int arrivalTime;
    int flightNumber;
public:
    Flight(int arrival) : // constructor for testing only
        arrivalTime(arrival),
        flightNumber(++flightCounter)
    {} 
    
    // other methods omitted
    int getArrivalTime() { return arrivalTime; }
    int getFlightNumber() { return flightNumber; }
};

int Flight::flightCounter = 0;

bool CompareArrivalTimes(Flight *left, Flight *right)
{
    return left->getArrivalTime() < right->getArrivalTime();
}


std::vector<Flight*> SortByArrivalTime(Flight* flightArray, size_t arrayLength)
{
    std::vector<Flight*> results;
    for(; arrayLength; --arrayLength)
        results.push_back(flightArray++);
    std::sort(results.begin(), results.end(), CompareArrivalTimes ); // O(N * lg(N)) complexity
    return results;
}

#include <iostream>

int main(int argv, char** args)
{
    Flight flights[] = {1000, 900, 1630, 1600, 1545, 530, 2200};
    size_t numberOfFlights = sizeof(flights)/sizeof(Flight);
    std::cout << "Unsorted times" << std::endl;
    for(size_t i=0; i < numberOfFlights; ++i)
    {
        std::cout << "Flight: "<< flights[i].getFlightNumber() << " Arrival Time: " << flights[i].getArrivalTime() << std::endl;
    }
    std::vector<Flight*> sorted = SortByArrivalTime(flights, numberOfFlights);
    std::cout << "Sorted times" << std::endl;
    for(size_t i=0; i < numberOfFlights; ++i)
    {
        std::cout << "Flight: "<< sorted[i]->getFlightNumber() << " Arrival Time: " << sorted[i]->getArrivalTime() << std::endl;
    }
    
}


Output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Unsorted times
Flight: 1 Arrival Time: 1000
Flight: 2 Arrival Time: 900
Flight: 3 Arrival Time: 1630
Flight: 4 Arrival Time: 1600
Flight: 5 Arrival Time: 1545
Flight: 6 Arrival Time: 530
Flight: 7 Arrival Time: 2200
Sorted times
Flight: 6 Arrival Time: 530
Flight: 2 Arrival Time: 900
Flight: 1 Arrival Time: 1000
Flight: 5 Arrival Time: 1545
Flight: 4 Arrival Time: 1600
Flight: 3 Arrival Time: 1630
Flight: 7 Arrival Time: 2200


Create a new paste based on this one


Comments: