计算一组

Counting Sort for a set

本文关键字:一组 计算      更新时间:2023-10-16

您好,我知道Couting排序如何工作,如何实现它,但是可以在获得3个属性的类上实现它,并且需要在特定属性上计数整个分离设定。

如果是这样,可以说我有这个课:

class myStructure {
public:
    int m_id = -1;
    myStructure* m_parent = NULL;
    int m_sortie = -1;
    int m_echeance = -1;
    myStructure() {}
    myStructure(int id, myStructure* parent, int sortie, int echeance)
        : m_id(id), m_parent(parent), m_sortie(sortie), m_echeance(echeance)
    { }
};

如何在m_echance上实现计数排序。谢谢

肯定可以应用计数排序。它适用于可以与整数映射的任何字段。通常,如果值范围(在您的情况下)很小,则应使用排序。以下是这样做的高级方法 -

假设您的对象存储在阵列a []

m_echeance的范围是[0,r-1]

  1. 制作计数数组。

  2. 循环循环通过数组A到具有不同m_echeance值的对象的频率。

诸如[a [i] -> m_echeance 1] ;

之类的东西
  1. 获取计数数组的累积频率。

  2. 根据累积频率复制辅助数组中的对象。

  3. 将对象从辅助数组复制到原始数组。

希望它有帮助!