Masz trochę racji, ale niestety albo musisz sam napisać lepszy algorytm do sortowania albo użyć gotowej funkcji [algorytmu] sort z biblioteki STL.
To jest moje zdanie: jeżeli dopiero zaczynasz, to użycie wskaźników mogłoby być uzasadnione tylko z tego powodu, że chcesz je poznać i przećwiczyć. Zastosowanie wskaźników zamiast normalnych indeksów w żadnym wypadku nie powoduje przyśpieszenia działania programu - uzyskujemy taki sam. Po co więc stosujemy wskaźniki? Aby skrócić zapis kodu, a przy okazji uczynić go mniej czytelnym i zrozumiałym - przeczytaj początek tego akapitu 
Taki przykład - jak bym to ja napisał, jeżeli bym w ogóle tak pisał - patrz początek poprzedniego akapitu.
void showNumbers (int *numbers, int v_how_many) {
while (v_how_many--)
cout << *numbers++ << " ";
}
ale pewnie raczej jednak tak:
void showNumbers (int *numbers, int v_how_many) {
for (int i = 0; i < v_how_many; ++i)
cout << *(numbers +i) << " ";
}
Napisałem, że nieuzasadnione, bo jednak najpierw powinieneś napisać działający kod na AC, a dopiero potem baw się wskaźnikami i sam naocznie zobacz czy uzyskany kod będzie dużo szybszy. Nawet jeżeli przypadkiem tak się stanie, to i tak efekt nie będzie wart - gra nie warta świeczki.
Lub może inaczej - tablice do funkcji można przekazać jako adres początku tablicy - czyli masz rację - jako wskaźnik, ale potem bezpośrednie działania na nim - przesuwanie go powodują efekty uboczne.
Komentarze powinny być tylko dla Ciebie w pierwszej kolejności. Jeżeli robiłeś to dla mnie - musiałem myśleć o jeszcze jedne jrzeczy więcej, o twoim komentarzu. To nie moje wymysły - poczytaj np Czysty kod - [Clean kode].
Nadmiar lub zbędne komentarze tylko zaciemniają kod.
Taki przykład:
// determine divisors of 1260 and set them all to variable "all_basic_number_divisors"
setBasicNumberDivisors(basic_number, basic_number_divisors);
///Jeżeli używasz opisowych nazw zmiennych i funkcji to komentarz staje się zbędny [lub błędny ;-) ]
// determine divisors of 1260 and set them all to variable "basic_number_divisors"
// chyba, że tak bardzo chcesz poćwiczyć angielski.
// podobnie dalej - przy sortowaniu
Mój przykład zbędnego komentarza: 
/// teraz będę sortował tablicę A od początku do końca
sort (A.begin(), A.end());
A znajdowanie gcd, wymyślił już starożytny matematyk Euklides. Tu masz po angielsku: https://en.wikipedia.org/wiki/Euclidean_algorithm, ale to samo zbnajdziesz też po polsku.