Я пытаюсь реализовать сортировку пузырьков, но в конце список не сортируется вообще.Bubble Сортировка не сортировка
Похоже, что это, и я не могу найти ошибку:
void sort(int values[], int n)
{
//Printing unsorted list
for(int l = 0; l < n; l++)
{
printf("Unsorted %i \n", values[l]);
}
// Implement Bubble sort
for(int j = 0; j <= n-1; j++)
{
int swaps = 0;
int k = 0;
for(int i = 0; i < n - k; i++)
{
if(values[i] > values[i+1])
{
swap(&values[i], &values[i+1]);
swaps++;
printf("swaps: %i\n", swaps);
//Printing sorted list
for(int m = 0; m < n; m++)
{
printf("Sorted %i \n", values[m]);
}
}
if(swaps == 0)
{
return;
}
k++;
}
}
}
неотсортированной список является:
Unsorted 34
Unsorted 17
Unsorted 51
Unsorted 12
Unsorted 33
Unsorted 56
Unsorted 11
Unsorted 31
Unsorted 16
Unsorted 55
И отсортированный список выходит так:
Sorted 17
Sorted 34
Sorted 12
Sorted 33
Sorted 51
Sorted 56
Sorted 11
Sorted 31
Sorted 16
Sorted 55
PS: Функция подкачки работает, я ее уже тестировал.
Вы должны пройти через функцию самостоятельно, по очереди; ошибка легко обнаружить, если вы знаете понятие пузырьковой сортировки. –
Некоторые люди просто не хотят помогать. Если бы я мог найти ошибку самостоятельно, с отладчиком или просто взглянув на нее, я бы НЕ разместил здесь –
@JoaoTurolla Некоторые люди не хотят работать, потому что это совпадение легче спросить, а не отлаживать самостоятельно. Проблема в том, что вы учитесь программировать только тогда, когда работаете, а не когда получаете ответы от кого-то еще. – Slava