int main() {
int temp;
int k = 3;
int s;
int j;
int tab[] = { 8, 7, 6, 5, 4, 3, 2, 1 };
int n = 1;
for(int i=1; i<=k; i++)
n *= 2;
s = 1;
while( s < n ) {
j = 1;
while( j < n ) {
if( tab[j-1] > tab[j+s-1] ) {
temp = tab[j-1];
tab[j-1] = tab[j+s-1];
tab[j+s-1] = temp;
}
j += 2*s;
for( int i = 0; i<4; i++ ) {
std::cout<<tab[i]<<", ";
}
std::cout<<std::endl;
}
s *= 2;
}
return 0;
}
późno już na tłumaczenie więc załączę ten kodzik w c++ który jest implementacją pierwszego algorytmu, wyświetla zawartość tablicy co pętle, zwykle preferuję naukę przez praktykę może w ten sposób szybciej zrozumiesz algorytm, przy drobnej edycji możesz wyświetlać co się dzieje z poszczególnymi zmiennymi co myślę jest kluczem do zrozumienia całości, powodzenia ;)
Edit. Nie sprawdziłem działu i co prawda nie ma nic o językach programowania ale myślę że zdając maturę z informatyki rozszerzonej tego typu odpowiedź okaże się dość zrozumiała