排序算法和对象指针存在问题

时间:2019-03-10 14:09:31

标签: c++ algorithm sorting

我有一个包含一些数据的对象,例如:

class Employee{
    private:
         int employee_number;
         // +more objects and data
    public:
        int get_number() {
            return employee_number;
        }
};

对象存储在指针数组中:

Employee* employees[MAX + 1];

未使用Employee中的第一个元素,因此该算法会跳过employee [0]

每次添加新员工时,都会调用排序算法,如下所示:

int to = employees.length - 1;
for (int from = 1; from < to; from++) {
    if (employees[from]->get_number() > employees[from + 1]->get_number()) {
        Employee *tmp = employees[from + 1];
        int i = from;

        while (i >= 1 && employees[i]->get_number() > tmp->get_number()) {
            employees[i + 1] = employees[i];
            i--;
        }

        employees[i + 1] = tmp;
    }
}

我不确定为什么不对employees数组进行排序,因为此算法与常规int数组一起使用效果很好。另外请记住,我的整个代码都是用我自己的语言编写的,所以我不得不在这里翻译成英语。

0 个答案:

没有答案