Best shuffle: Difference between revisions

Removed division by zero bug from C version
(Removed stack overflow from C version)
(Removed division by zero bug from C version)
Line 128:
void best_shuffle(const unsigned char* txt, unsigned char* result) {
const int len = (int)strlen((char*)txt);
if (len == 0)
return;
 
#ifdef DEBUG
Line 144 ⟶ 146:
fmax = fnew;
}
assert(fmax > 0 && fmax <= len);
 
// how long can our cyclic groups be?
Line 207 ⟶ 210:
int main() {
char* data[] = {"abracadabra", "seesaw", "elk", "grrrrrr",
"up", "a", "aabbbbaa", "", "xxxxx"};
const int data_len = sizeof(data) / sizeof(data[0]);
for (int i = 0; i < data_len; i++) {
const unsigned int shuf_len = (int)strlen(data[i]) + 1;
unsigned char shuf[shuf_len];
 
Line 231 ⟶ 234:
up, pu, (0)
a, a, (1)
aabbbbaa, bbaaaabb, (0)</pre>
, , (0)
xxxxx, xxxxx, (5)</pre>
 
=={{header|Clojure}}==
Anonymous user