Что я упустил?Проблема с методом пузырьковой сортировки - PullRequest
0 голосов
/ 08 декабря 2018

Я хочу использовать метод домашней сортировки для домашней работы, но он не работает, я не могу найти ошибку

 void bubbleSort(int arr[], int n) 
   { 
     int i,j; 
     for (i = 0; i < n-1; i++)       
      // last i elements are already in place    
     for (j = 0; j < n-i; j++) 
       if (arr[j] > arr[j+1]) 
         swap(&arr[j], &arr[j+1]); 
  }

Может ли кто-нибудь мне помочь?Заранее спасибо

1 Ответ

0 голосов
/ 08 декабря 2018

Обратите внимание, что условие остановки второго цикла должно быть n - i - 1

void bubbleSort(int arr[], int n) 
{ 
    int i, j; 
    for (i = 0; i < n - 1; i++)    
        // Last i elements are already in place    
        for (j = 0; j < n - i - 1; j++)  // **Added n - i - 1**
            if (arr[j] > arr[j+1]) 
                swap(&arr[j], &arr[j+1]); 
}

подробнее о сортировке пузырьков здесь: Ссылка

...