C ++ Bubble Sorting - PullRequest
       23

C ++ Bubble Sorting

0 голосов
/ 04 июня 2018

Эй, я получил этот алгоритм из своего класса, называемого Bubble SortОн использует два «для» один внутри другого.Но когда я попытался сделать это с «пока», это не сработало, разве они не эквивалентны?

void bubbleSort(int v[], int n) {   // void workingBubble(int v[], int n){
  int fim = n - 1;                  //      int i, fim;
  int i = 0;                        //      for(fim=n-1; fim>0; fim--){
  int aux;                          //          for(i=0; i<fim; i++){
  while (fim > 0) {                 //              if(v[i] > v[i+1]){
      while (i < fim) {             //                  int temp = v[i];
          if (v[i] > v[i + 1]) {    //                  v[i] = v[i+1];
              aux = v[i];           //                  v[i+1] = temp;
              v[i] = v[i + 1];      //              }
              v[i + 1] = aux;       //          }
          }                         //      }
          i++;                      // }
      }                             //
      fim--;                        //
}}

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

Array = {10, 2, 8, 11, 5, 3, 27, 1}

Array после пузырьковой сортировки = {2, 8, 10, 5, 3, 11, 1, 27}

1 Ответ

0 голосов
/ 04 июня 2018

Сброс i до 0 каждый раз перед внутренним циклом:

void bubbleSort(int v[], int n) {
  int fim = n - 1;
  int i;
  int aux;
  while (fim > 0) {
      i = 0;
      while (i < fim) {
          if (v[i] > v[i + 1]) {
              aux = v[i];
              v[i] = v[i + 1];
              v[i + 1] = aux;
          }
          i++;
      }
      fim--;
  }
}
...