typedef int (* Compare)(const void *key1, const void *key2);
int IsSort(void *sort, int size, unsigned int eleSize, Compare compare)
{
char *a = sort;
void *node = NULL;
int j, i, index;
if ((sort == NULL) || (eleSize == 0) || (size == 0) || (size < eleSize) || (compare == NULL)) {
return -1;
}
node = malloc(eleSize);
if (node == NULL) {
return -1;
}
for (j = 1; j < size; j++) {
for (i = j; i > 0; i--) {
index = i * eleSize;
if (compare(&a[index - eleSize], &a[index]) > 0) {
memcpy(node, &a[index - eleSize], eleSize);
memcpy(&a[index - eleSize], &a[index], eleSize);
memcpy(&a[index], node, eleSize);
}
}
}
free(node);
return 0;
}
排序-插入排序
最新推荐文章于 2023-10-10 09:33:08 发布