Авторазборка Турбо-Нн
Авторазборка Турбо-Нн

Сортировка Шелла на Си

Пытаюсь реализовать сортировку Шелла с шагами 3,2,1:
int shellSort(char *arr, int count){
     char temp;
     int i,j,k;

     for(i=3;i>0;i--){
         for(j=i;j<count;j++){
             for(k=j;k>=0 && arr[k]<arr[k-i];k=k-i){
                 temp = arr[k];
                 arr[k] = arr[k-i];
                 arr[k-i] = temp;
             }
         }
     }

     return 0;
}

Передаю массив:
char test[10] = {'f','g','r','d','v','s','a','t','e','g'};
shellSort(test,10);

Как итог получаю левое значение и не пойму откуда оно взялось:


В программе сразу же появляется буква 'u', причем если убрать k=k-i она исчезает.

Ошибку нашел, выход за границы массива:
for(k=j;(k-i)>=0 && arr[k]<arr[k-i];k=k-i){

КА
Катерина Азарова

Вариант с шаблонами.

Похожие вопросы
Помогите немогу понять почему неработает сортировка Шелла .За любую помощь большое спасибо.
Сортировка методом пузырька. Си.
помогите с сортировкой на Си
Алгоритм сортировки С++
сортировка естественым слиянием с (си)
Сортировка Структур по Алфавиту (Язык Си)
Алгоритм сортировки на СИ.
Как происходит сортировка слов, методом сортировки Хоара?
подскажите пожалуйста что изменить в коде быстрой сортировки методом Шелла С#
Язык СИ. Массивы Ребят, как на Си написать сортировку массива от меньшего к большему?