void sort_vector ()
{
int i, j;
for ( i = 0; i < _num_vrsVector; ++i )
{
for ( j = i+1; j < _num_vrsVector; ++j )
{
if ( _vrsVector[i]->_phase > _vrsVector[j]->_phase ) {
swap_vector ( &_vrsVector[i], &_vrsVector[j] );
}
}
}
}
void swap_vector (struct vrsVector **p, struct vrsVector **q )
{
struct vrsVector *temp;
temp = *p;
*p = *q;
*q = temp;
}
我的问题是哪种方法更适合对 C 中指向结构对象的指针数组进行排序。
上面的代码是进行比较,然后进行交换。我知道的另一种方法是使用“QSORT”
。我想知道我刚才提到的哪些方法更适合对数组进行排序指向对象的指针?
最佳答案
我会使用图书馆的一些东西,除非你有理由不这样做。一般来说,这是排序或其他任何事情都需要遵循的一个很好的规则。如果您发现它不满足您的要求,那么寻找替代方案,但您的默认立场应该是“其他人做得比我做得更好”。 (或者,如果你的自尊心无法接受这一点,“我的工作是向我的业务/用户提供 X。我从事的是“X”业务,而不是编写排序例程,无论我有多擅长”)。
TL;DR:qsort 是“最好的”
关于c - C 中的排序算法,使用 qsort 或替代交换方法对指向结构对象的指针数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17917061/