gpt4 book ai didi

c - 了解 C 中的函数指针和插入排序

转载 作者:太空宇宙 更新时间:2023-11-03 23:22:42 24 4
gpt4 key购买 nike

<分区>

我正在尝试使用与 C 中内置的 qsort 非常相似的参数来实现插入排序,但我正在努力寻找正确的方法,因为我无法完全掌握函数指针。我将如何将其重写为插入排序(使用函数指针?)

static void sort(char *array, size_t size, int (*cmp)(void*,void*), int    
begin, int end) {
if (end > begin) {
void *pivot = array + begin;
int l = begin + size;
int r = end;
while(l < r) {
if (cmp(array+l,pivot) <= 0) {
l += size;
} else if ( cmp(array+r, pivot) > 0 ) {
r -= size;
} else if ( l < r ) {
swap(array+l, array+r, size);
}
}
l -= size;
swap(array+begin, array+l, size);
sort(array, size, cmp, begin, l);
sort(array, size, cmp, r, end);
}
}

void qsort(void *array, size_t nitems, size_t size, int (*cmp)(void*,void*)) {
sort(array, size, cmp, 0, nitems*size);
}

非常感谢!

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com