C中的qsort()函数不适用于我的图

enter image description here

 struct Edge
{
    int sursa, destinatie, cost;
};

struct Graf
{
    int E, M;
    struct Edge edge[MAX_EDGES];
};

int ComparaCost(const void* x, const void* y)
{
    struct Edge* a_edge = (struct Edge*) x;
    struct Edge* b_edge = (struct Edge*) y;
    return a_edge -> cost > b_edge -> cost;
}

qsort(g -> edge, g -> E, sizeof(g->edge[0]), ComparaCost);

我不知道为什么该功能不能按成本(重量)以递增的顺序对边缘进行排序。我的意思是,它稍微改变了图中边缘的顺序,但没有正确的方式。