Сортировка по массивам - PullRequest
       16

Сортировка по массивам

1 голос
/ 25 сентября 2010

При сортировке массива, например: A [5] = {1,4,5,3,2}, вывод должен быть 1,2,3,4,5 в порядке возрастания.при использовании концепции пузырьковой сортировки мой результат равен 0,1,2,3,4, в чем проблема в моем коде

  int A[5]={1,5,3,2,4};
     for(int i=0;i<5;i++){
     for(int j=0;j<5;j++){
     if(A[j]>A[j+1])
     {
      int t=A[j];
      A[j]=A[j+1];
      A[j+1]=t;
     }
     }
    }
     for(i=0;i<5;i++)
     cout<<A[i];

Ответы [ 4 ]

3 голосов
/ 26 сентября 2010

Вам нужно ограничить свой внутренний цикл <4: </p>

int A[5]={1,5,3,2,4};
for(int i=0;i<5;i++){
    for(int j=0;j<4;j++){
        if(A[j]>A[j+1])
        {
           int t=A[j];
           A[j]=A[j+1];
           A[j+1]=t;
        } 
    }
}
for(i=0;i<5;i++)
   cout<<A[i];
2 голосов
/ 25 сентября 2010

Почему бы не использовать сортировку STL?

#include <algorithm>

std::sort(A, A+5);
0 голосов
/ 26 сентября 2010

Есть ли причина, по которой вы делаете пузырьковую сортировку, а не пытаетесь учиться этому? Это один из самых медленных сортов.

0 голосов
/ 25 сентября 2010

Возможно, вы печатаете i вместо A[i] в цикле печати, как в

for( int i = 0; i < N; i++ ) {
    cout << i << ",";          // by mistake, printing i instead of A[i]
}
...