我正在使用C库函数qsort对一堆整数键进行排序。有关如何扩展它以对键值对进行排序的任何想法,建议和指针,其中整数键可以具有任何关联值吗?谢谢!
答案 0 :(得分:4)
使用(固定大小)结构数组,并提供自己的比较函数。
答案 1 :(得分:1)
使用struct { int key; void *value; }
和进行比较的函数?
答案 2 :(得分:0)
//just quick sorting function (with key-index array to maintain identity)
//inefficient but works
void quicksort(int *values, int *keys, int count)
{
bool bool_sorted = false;
int temp;
//check whether all keys are in the correct order
while (bool_sorted == false)
{
bool_sorted = true;
for (int i = 0; i < count-1; i++)
{
//if next value is lower
if (values[i] > values[i+1])
{
//swap + key index
temp = values[i];
values[i] = values[i+1];
values[i+1] = temp;
temp = keys[i];
keys[i] = keys[i+1];
keys[i+1] = temp;
bool_sorted = false;
}
}
}
}
为方便其他寻找实际答案的人而发布。