Jeśli potrzebujesz po prostu posortować liczby to zrób tak jak sugeruje kolega : import java.utils.Arrays i Arrays.sort(twojaTablica);
Ale jeśli uczysz się algorytmów sortowania to przeczytaj dalszą część :P
Cala idea sortowania przez wstawianie to przelecenie po calej tablicy i przesuwanie liczb tak zeby tablica od 0 do analizowanej liczby byla posortowana.
Inaczej ujmując bierzesz kolejne liczby z tablicy i cofasz się porównując liczby w tablicy tak, żeby znaleźć miejsce w które pasuje analizowana liczba. Wstawianie w odpowiednie miejsce można porównać do wpychania. Wyciagasz jedną - zostaje tam wolne miejsce. Chcesz ją wstawić gdzieś bardziej z przodu, wiec robisz jej miejsce przesuwając wszystkie liczby miedzy nią a tym pustym w prawo i wstawiasz wybraną liczbe w powstałe puste miejsce.
Tzn np 9 8 1 3
analizujemy 9: zostaje na swoim miejscu: 9 8 1 3 (ten krok nigdy nic nie zmienia wiec sie go pomija w algorytmie)
analizujemy 8: 8 < 9, wiec "wpychamy" 8 na początek: 8 9 1 3
analizujemy 1: jest mniejsza od wszystkich przed nia wiec "wpychamy" ją na poczatek: 1 8 9 3
analizujemy 3: porownujemy liczby za nia i wychodzi, ze pasuje pomiedzy 1 a 8, więc ją tam wpychamy.
Teraz bardziej technicznie - na czym polega wepchnięcie liczby w jej miejsce. Najlepiej jest to zrobić tak:
tablica: 1 4 8 9 3, analizujemy 3:
mniejsze od 9 wiec przestawiamy 9 o 1 w prawo: 1 4 8 9 9. Zauważ, że nadpisaliśmy liczbę 3, nie obchodzi to nas bo mamy ją zapamiętaną jako analizowaną liczbe tzw klucz. Moglibyśmy je normalnie zamieniać tak jak w każdym innym sortowaniu, ale jak się zaraz przekonasz nie jest to konieczne. Idziemy z naszą trójką dalej w lewo: 8 też jest wieksze od 3, wiec przestawiamy ósemke: 1 4 8 8 9. Idziemy dalej - 4 też jest większe od 3: 1 4 4 8 9, lecimy dalej: 1 jest już mniejsze od 3 wiec znaleźliśmy miejsce naszą trójeczkę i ją wstawiamy: 1 3 4 8 9.
Mam nadzieję, że rozjaśniłem jak to działa i czemu można nadpisywać liczby. Jeśli dalej masz wątpliwości jak to działa to możesz zobaczyć na animacje na wikipedii: https://pl.wikipedia.org/wiki/Sortowanie_przez_wstawianie.
Zakodziłem sobie to, żeby zobaczyć czy dalej to pamiętam :D:
//key to klucz, czyli liczba ktora bedziemy wstawiac na jej miejsce
//j to iterator do wewnetrznej petli
int key, j;
//petle startujemy od i = 1, bo pierwszego elementu nie ma z czym porowywac,
//inaczej mowiac 1-elementowa tablica juz jest posortowana
for (int i = 1; i < array.length; i++) {
//wybieramy klucz, czyli liczbe dla ktorej bedziemy szukac miejsca
key = array[i];
//j to indeks liczby porownywanej do klucza, startuje od pierwszej liczby przed i
j = i - 1;
//dopoki nie wyszlismy przed tablice oraz badana liczba jest wieksza od klucza
while(j >= 0 && array[j] > key){
//normalnie moglibysmy tutaj zrobic zamiane liczb, ale skoro
//w tym algorytmie stosuje sie lekka optymalizacje z nadpisywaniem
//liczb, bo zapamietujemy key wczesniej
array[j+1] = array[j];
j--;
}
//wstawiamy key w jego miejsce
//zwroc uwage na j+1, to dlatego ze na koncu petli zawsze jest j--
//gdy petla sie przerwie to j pokazuje na miejsce jedno przed tym ktorego szukamy
array[j+1] = key;
}