Mega Code Archive

 
Categories / C / Code Snippets
 

The Shaker Sort

#include <string.h> #include <stdio.h> #include <stdlib.h> void shaker(char *items, int count); int main(void) { char s[255]; printf("Enter a string:"); gets(s); shaker(s, strlen(s)); printf("The sorted string is: %s.\n", s); return 0; } void shaker(char *items, int count) { register int j; int exchange; char t; do { exchange = 0; for(j = count - 1; j > 0; --j) { if(items[j - 1] > items[ j ]) { t = items[j - 1]; items[j - 1] = items[ j ]; items[ j ] = t; exchange = 1; } } for(j = 1; j < count; ++j) { if(items[j - 1] > items[ j ]) { t = items[j-1]; items[j - 1] = items[ j ]; items[ j ] = t; exchange = 1; } } } while(exchange); /* sort until no exchanges */ }