2016-12-10 6 views
0

안녕하세요, 어떻게 그것을 구현하는 방법을 couting 정렬 알아요,하지만 그것은 3 attributs있어 특정 속성에 대한 전체 DisjointSetSort 필요가있는 클래스에 그것을 구현할 수 있습니다.카운트 정렬 집합에 대한 정렬

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에 계수 정렬을 구현할 수 있습니다

는 그렇다면, 내가이 클래스가 있다고 할 수 있습니다. 감사합니다.

+0

분류 소계는 분류 할 속성이 필요합니다. 클래스의 모든 속성은 공개되어 있으므로 정렬 할 수 있습니다. 문제가 무엇인지, 자세히 설명해주십시오. 코드가 필요합니다. –

답변

0

확실히 계산 분류를 적용 할 수 있습니다. 정수로 매핑 할 수있는 모든 필드에 적용 할 수 있습니다. 일반적으로 값 범위 (m_echeance의 경우)가 작 으면 집계 정렬을 사용해야합니다.

이의이 객체가 A가 [] m_echeance의

범위는 [R-1 0]

  1. 수를 확인 인 배열에 저장되어 있다고 가정 해 봅시다 독일인의 다음은 할 높은 수준의 접근 방식 정렬.

  2. 배열 A를 반복하면 다른 m_echeance 값을 갖는 객체의 빈도를 카운트 할 수 있습니다.

count [A [i] -> m_echeance + 1] ++와 같은 것;

  1. 카운트 배열의 누적 빈도를 가져옵니다.

  2. 누적 빈도에 따라 보조 배열에 개체를 복사하십시오.

  3. 보조 배열에서 원래 배열로 개체를 복사합니다.

희망 하시겠습니까?