
// используя функцию strcmp
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define SIZE 20
char shakerSort(char *[], int);
void printing(char *[]);
int main ()
{
char *cityNames[] = {"Брест", "Жабинка", "Кобрин", "Каменец",
"Береза", "Белоозерск", "Ивацевичи", "Барановичи", "Пружаны",
"Ружаны", "Ганцевичи", "Пинск", "Столин", "Иваново",
"Антополь", "Дрогичин", "Лунинец", "Микашевичи",
"Давид-городок", "\n"};//20 элементов
//printf("\n%ld\n",sizeof(cityNames));
shakerSort(cityNames, SIZE);
printing(cityNames);
}
char shakerSort(char *CN[], int size)
{
char * tmp;
int left = 0, right = (size - 2);
while (left < right)
{
for (int i = left; i < right; i++)//слева направо
{
if (strncmp(CN[i], CN[i + 1], 4) > 0)
{
tmp = CN[i];
CN[i] = CN[i + 1];
CN[i + 1] = tmp;
}
}
right--;
////////////////////////////////////////////////////////////
for (int j = right; j > left; j--)
{
if (strncmp(CN[j], CN[j - 1], 4) < 0)
{
tmp = CN[j];
CN[j] = CN[j - 1];
CN[j - 1] = tmp;
}
}
left++;
}
}
void printing(char *CN[])
{
int i = 0;
while (CN [i] != "\n")
{
printf("\n%d\t%s\n", i, CN[i]);
i++;
}
}