strsort.c
来自「由8051/8096/8099/8048单片机汇编工具、 汇编语言、摩托罗拉m」· C语言 代码 · 共 35 行
C
35 行
/*
** strsort() -- Shell sort an array of string pointers via strcmp()
** public domain by Ray Gardner Denver, CO 12/88
*/
#include <string.h>
#include <stddef.h>
void strsort (char **array, size_t array_size)
{
size_t gap, i, j;
char **a, **b, *tmp;
for (gap = 0; ++gap < array_size; )
gap *= 2;
while (gap /= 2)
{
for (i = gap; i < array_size; i++)
{
for (j = i - gap; ;j -= gap)
{
a = array + j;
b = a + gap;
if (strcmp(*a, *b) <= 0)
break;
tmp = *a;
*a = *b;
*b = tmp;
if (j < gap)
break;
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?