Witam wszystkich.Mam problem z algorytmem sortowania.To połączenie dwóch typów algorytmu, ale coś mi nie działa, widzi ktoś jaki błąd popełniłem?
public static void prosteWstawianieB(int []tab,int n) {
for (int i=2; i<n; i++) {
int nowy = tab[i];
tab[0] = nowy;
int j = i-1;
int poczatek;
int koniec;
int srodek;
int wstawiany = 0;
poczatek = 1;
koniec = j;
boolean znaleziono;
znaleziono = false;
do{
srodek = (poczatek + koniec) / 2;
if(nowy==tab[srodek]){
wstawiany = nowy;
for(int k = j; k > srodek; k--){
tab[k+1] = tab[k];
}
tab[j] = wstawiany;
znaleziono = true;
}
else{
if(tab[i]<tab[srodek]){
koniec = srodek - 1;
}
else{
poczatek = srodek + 1;
}
}
if(poczatek>koniec){
wstawiany = nowy;
for(int k=j ; k >= poczatek; k--){
tab[k+1] = tab[k];
}
tab[j] = wstawiany;
znaleziono = true;
}
}
while((!znaleziono)&&(poczatek<=koniec));
tab[j+1] = nowy;
}
}