В настоящее время я прохожу курс «Структура данных и алгоритм», и часть упражнения заключается в реализации алгоритма сортировки шейкера с 3 для циклов.В фрагменте кода содержится несколько ошибок, которые я исправил, но есть одна вещь, которую я не уверен, почему я получаю это: когда я инициализирую массив размером 12, мое первое значение индекса не сортируется, я не понимаюЗачем. Вот мой код:
// Method which will sort an array by using the shakersort algorithm
public void shakerSort(int[] array)
{
for (int p = 1; p < array.length-1; p++)
{
for (int i = p-1; i < array.length-2; i++)
{
if (array[i] > array[i+1])
{
super.swap(array, i, i+1);
}
}
for (int i = array.length-p-1; i > 0; i--)
{
if (array[i] > array[i+1])
{
super.swap(array, i, i+1);
}
}
}
Мой результат был таким:
- Элемент 0: 53
- Элемент 1: 27
- Элемент 2: 28
- Элемент 3: 53
- Элемент 4: 90
- Элемент 5: 72
- Элемент 6: 80
- Элемент 7: 67
- Элемент 8: 2
- Элемент 9: 33
- Элемент 10: 45
- Элемент 11: 91
- После сортировки ...
- Элемент 0: 27
- Элемент 1: 2
- Элемент 2: 28
- Элемент 3: 33
- Элемент 4: 45
- Элемент 5: 53
- Элемент 6: 53
- Элемент 7: 67
- Элемент 8: 72
- Элемент 9: 80
- Элемент 10: 90
- Элемент 11: 91
Спасибо за ваше время и помощь
-Даниель