我有一个包含一些数据的对象,例如:
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数组一起使用效果很好。另外请记住,我的整个代码都是用我自己的语言编写的,所以我不得不在这里翻译成英语。