CからC++に移行中の人が質問するためのスレ
■ このスレッドは過去ログ倉庫に格納されています
0231デフォルトの名無しさん
2005/06/17(金) 20:16:45#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct pair { const char *s; int n; };
int cmp(const void *a, const void *b)
{
const struct pair *aa = a;
const struct pair *bb = b;
return strcmp(aa->s, bb->s);
}
size_t make_suffixarray(const char *str, int *array)
{
size_t i;
size_t len = strlen(str);
struct pair *holder = malloc(sizeof(struct pair) * len);
for (i = 0; i < len; ++i) {
holder[i].s = str + i;
holder[i].n = i;
}
qsort(holder, len, sizeof(struct pair), cmp);
for (i = 0; i < len; ++i)
array[i] = holder[i].n;
free(holder);
return len;
}
■ このスレッドは過去ログ倉庫に格納されています