• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

wskaźniki c++ sortowanie

0 głosów
654 wizyt
pytanie zadane 10 stycznia 2019 w C i C++ przez Mavannkas Bywalec (2,290 p.)
void sortuj (int * start, int * end )
{
    int c;
    int * a = start;
    bool fl;
    for(;!fl;start = a)
    {
        end--;
        
        fl=true;
            for(;start<end;start++)
            {
                if(*start>*(start+1))
                {
                  c=*start;
                    *start=*(start+1);
                    *(start+1)=c;
                    fl=false;
                }
            }
    }
}
void sortuj (int * start, int * end )
{

    int * a = start;
    bool fl;
    int c,i=0;
    for(;!fl;start = a)
    {
        i++;
        fl=true;
            for(;start<end-i;start++)
            {
                if(*start>*(start+1))
                {
                  c=*start;
                    *start=*(start+1);
                    *(start+1)=c;
                    fl=false;
                }
            }
    }
}

Moim problemem jest to że nie rozumiem dlaczego w pierwszym fragmencie wszystko dobrze działa i się sortuje a w drugim funkcja nie działa poprawnie a jedyną zmianą jest sposób zapisu zmniejszania wskaźnika end. Mógłby mi to ktoś wytłumaczyć?

 

1 odpowiedź

0 głosów
odpowiedź 10 stycznia 2019 przez RafalS VIP (122,780 p.)

Będzie działać losowo w obu przypadkach, bo sprawdzasz wartość niezainicjalizowanej zmiennej:

bool fl;
for(;!fl;start = a)

Poza tym na moje oko nie ma różnicy.

Podobne pytania

0 głosów
1 odpowiedź 1,602 wizyt
pytanie zadane 18 grudnia 2018 w C i C++ przez pysiek Początkujący (280 p.)
+1 głos
1 odpowiedź 562 wizyt
pytanie zadane 28 listopada 2024 w C i C++ przez adam234345 Początkujący (400 p.)
0 głosów
1 odpowiedź 1,376 wizyt
pytanie zadane 2 lutego 2021 w C i C++ przez Kamirru9 Początkujący (300 p.)

93,742 zapytań

142,678 odpowiedzi

323,299 komentarzy

63,326 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...