- C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
962 :デフォルトの名無しさん[sage]:2015/11/21(土) 21:40:33.71 ID:TwdaWMbW - static void
mysort(void *base, size_t const num, size_t const size, bool(*comp)(void const *, void const *)) { for (size_t a = 1; a < num; ++a) { if (comp(base + (a - 1) * size, base + a * size)) continue; byte t[size]; //これを memcpy(t, base + a * size, size); size_t b = a; while (b > 0 && (! comp(base + (b - 1) * size, base + a * size))) --b; memmove(base + (b + 1) * size, base + b * size, (a - b) * size); memcpy(base + b * size, t, size); } return; } ---------------------------------------- static void mysort(void *base, size_t const num, size_t const size, bool(*comp)(void const *, void const *)) { byte t[size]; //こうした for (size_t a = 1; a < num; ++a) { if (comp(base + (a - 1) * size, base + a * size)) continue; memcpy(t, base + a * size, size); size_t b = a; while (b > 0 && (! comp(base + (b - 1) * size, base + a * size))) --b; memmove(base + (b + 1) * size, base + b * size, (a - b) * size); memcpy(base + b * size, t, size); } return; } 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
|