#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void shaker(char *items, int count)
{
register int a;
int exchange;
char t;
do {
exchange = 0;
for(a=count-1; a > 0; --a) {
if(items[a-1] > items[a]) {
t = items[a-1];
items[a-1] = items[a];
items[a] = t;
exchange = 1;
}
}
for(a=1; a < count; ++a) {
if(items[a-1] > items[a]) {
t = items[a-1];
items[a-1] = items[a];
items[a] = t;
exchange = 1;
}
}
} while(exchange); /* sort until no exchanges take place */
}
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;
}
Enter a string:2
The sorted string is: 2.
15.2.Shaker Sort |
| 15.2.1. | This version of the bubble sort is called the shaker sort |