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ć?