使用列表C ++实现选择排序

时间:2015-01-04 11:06:12

标签: c++

我想实施选择排序来对航班的起飞时间进行排序,但它并不打印我的结果(而且我不确定它是否正确)。抱歉这个冗长而愚蠢的问题,我是编程新手。这是我现在制作的代码:

// Sort class
class Sort
{
protected:
    // number of comparisons performed in sort function
    unsigned long num_cmps;

public:
    // main entry point
    virtual void sort(std::vector<Flight>& data) = 0;
    // returns false if not sorted true otherwise
    bool testIfSorted(const std::vector<Flight>& data);
    // returns number of comparisons
    unsigned long getNumCmps();
    // resets the number of comparisons
    void resetNumCmps();
};

// SelectionSort class
class SelectionSort : public Sort
{
public:
    // main entry point
    void sort(std::vector<Flight>& data);
};

// BubbleSort class
class BubbleSort : public Sort
{
public:
    // main entry point
    void sort(std::vector<Flight>& data);
};

#include "Sort.h"

using namespace std;


unsigned long Sort::getNumCmps()
{
    return num_cmps;
}


void Sort::resetNumCmps()
{
    num_cmps = 0;
}

void Menu::selection_sort(){
    system("cls");
    ifstream in("inputFileExample.txt");
    if (!in)
    {
        cerr << "ERROR: wrong input file name!";
        exit(-1);
    }
    SelectionSort();
}

void SelectionSort::sort(std::vector<Flight>& data){
    for (int i = 0; i < (num_cmps - 1); i++)
    {
    int smallest = i;
        for(int j = (i+1); j<num_cmps; j++)
        {
            if(data[j] < data[smallest])
            {
                smallest = j;
            }
        }
    num_cmps++;
    cout << num_cmps;
    }
}

1 个答案:

答案 0 :(得分:0)

本声明

SelectionSort();

创建一个SelectionSort类型的临时对象,就是这样。

你实际上没有从文件中读取任何东西,你没有要排序的向量,你没有调用排序函数。