Fotografia przedstawia bąbelki z powietrzem pod wodą.
Fotografia przedstawia bąbelki z powietrzem pod wodą.
I_P+R_W14_M12_Java Sortowanie metodą bąbelkową
Źródło: Eliška Motisová, domena publiczna.
Alternatywna implementacja algorytmu sortowania bąbelkowego w języku Java
Polecenie 1
Zapoznaj się z prezentacją przedstawiającą inną implemenetację sortowania bąbelkowego.
Polecenie 2
Zapisz algorytm przedstawiony w prezentacji, wykorzystując schemat interaktywny. Dodaj do niego zliczanie operacji porównywania i zamiany.
xxx
xxxZapisz algorytm przedstawiony w prezentacji, wykorzystując schemat interaktywny. Dodaj do niego zliczanie operacji porównywania i zamiany. Odpowiedź zapisz w języku JavaScript.
xxx
xxxLinia 1. var tablica przecinek n przecinek por podkreślnik C3 podkreślnik B3wnania przecinek zamiany przecinek i przecinek zmieniono przecinek j przecinek pomocnicza średnik.
Linia 3. highlightBlock otwórz nawias okrągły apostrof kratka 7RIrn znak równości iFkAf kreska pionowa eoJP otwórz nawias kwadratowy gt apostrof zamknij nawias okrągły średnik.
Linia 4. tablica znak równości otwórz nawias kwadratowy 4 przecinek 6 przecinek 8 przecinek 2 przecinek 3 przecinek 5 przecinek 1 przecinek 9 przecinek 0 przecinek 7 zamknij nawias kwadratowy średnik.
Linia 5. highlightBlock otwórz nawias okrągły apostrof zamknij nawias okrągły przecinek d wykrzyknik qg0Jy2 otwórz nawias kwadratowy kreska pionowa 5w tylda otwórz nawias ostrokątny em zamknij nawias ostrokątny Mlon apostrof zamknij nawias okrągły średnik.
Linia 6. n znak równości tablica kropka length średnik.
Linia 7. highlightBlock otwórz nawias okrągły apostrof CEpJAJ otwórz nawias okrągły otwórz nawias ostrokątny code style znak równości cudzysłów white minus space dwukropek pre średnik cudzysłów data minus inline zamknij nawias ostrokątny dwukropek y zamknij nawias klamrowy x8Y01H podkreślnik Q znak równości apostrof zamknij nawias okrągły średnik por podkreślnik C3 podkreślnik B3wnania znak równości 0 średnik highlightBlock otwórz nawias okrągły apostrof I podkreślnik Osc zamknij nawias klamrowy 1Rh podkreślnik $Dh przecinek otwórz nawias okrągły n otwórz nawias klamrowy kratka Ox apostrof zamknij nawias okrągły średnik zamiany znak równości 0 średnik highlightBlock otwórz nawias okrągły apostrof 7VWsvB prawy ukośnik średnik otwórz nawias ostrokątny prawy ukośnik code zamknij nawias ostrokątny OmF2T minus kropka Pqp2 apostrof zamknij nawias okrągły średnik.
Linia 8. var i podkreślnik end znak równości n minus 2 średnik.
Linia 9. var i podkreślnik inc znak równości 1 średnik.
Linia 10. if otwórz nawias okrągły 0 zamknij nawias ostrokątny i podkreślnik end zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. i podkreślnik inc znak równości minus i podkreślnik inc średnik.
Linia 12. zamknij nawias klamrowy.
Linia 13. for otwórz nawias okrągły i znak równości 0 średnik i podkreślnik inc zamknij nawias ostrokątny znak równości 0 znak zapytania i otwórz nawias ostrokątny znak równości i podkreślnik end dwukropek i zamknij nawias ostrokątny znak równości i podkreślnik end średnik i plus znak równości i podkreślnik inc zamknij nawias okrągły otwórz nawias klamrowy.
Linia 14. highlightBlock otwórz nawias okrągły apostrof J dwukropek ENc0 procent n zamknij nawias kwadratowy tylda 00 kratka 4LS zamknij nawias kwadratowy minus otwórz nawias ostrokątny prawy ukośnik em zamknij nawias ostrokątny.
Linia 15. przecinek apostrof zamknij nawias okrągły średnik.
Linia 16. zmieniono znak równości false średnik.
Linia 17. highlightBlock otwórz nawias okrągły apostrof UraNfKcAhp2 otwórz nawias okrągły xOLXu2It apostrof zamknij nawias okrągły średnik.
Linia 18. var j podkreślnik end znak równości n minus otwórz nawias okrągły i minus 1 zamknij nawias okrągły średnik.
Linia 19. var j podkreślnik inc znak równości 1 średnik.
Linia 20. if otwórz nawias okrągły 1 zamknij nawias ostrokątny j podkreślnik end zamknij nawias okrągły otwórz nawias klamrowy.
Linia 21. j podkreślnik inc znak równości minus j podkreślnik inc średnik.
Linia 22. zamknij nawias klamrowy.
Linia 23. for otwórz nawias okrągły j znak równości 1 średnik j podkreślnik inc zamknij nawias ostrokątny znak równości 0 znak zapytania j otwórz nawias ostrokątny znak równości j podkreślnik end dwukropek j zamknij nawias ostrokątny znak równości j podkreślnik end średnik j plus znak równości j podkreślnik inc zamknij nawias okrągły otwórz nawias klamrowy.
Linia 24. highlightBlock otwórz nawias okrągły apostrof KBA4 średnik $mLG prawy ukośnik wy asterysk tylda kratka vcvCY apostrof zamknij nawias okrągły średnik.
Linia 25. por podkreślnik C3 podkreślnik B3wnania znak równości otwórz nawias okrągły typeof por podkreślnik C3 podkreślnik B3wnania znak równości znak równości apostrof number apostrof znak zapytania por podkreślnik C3 podkreślnik B3wnania dwukropek 0 zamknij nawias okrągły plus 1 średnik.
Linia 26. highlightBlock otwórz nawias okrągły apostrof kropka nF otwórz nawias klamrowy H zamknij nawias kwadratowy q minus plus pt kropka nW otwórz nawias klamrowy Kk6a0 apostrof zamknij nawias okrągły średnik.
Linia 27. if otwórz nawias okrągły tablica otwórz nawias kwadratowy otwórz nawias okrągły j minus 1 zamknij nawias okrągły zamknij nawias kwadratowy zamknij nawias ostrokątny tablica otwórz nawias kwadratowy otwórz nawias okrągły otwórz nawias okrągły j minus 1 zamknij nawias okrągły minus 1 zamknij nawias okrągły zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 28. highlightBlock otwórz nawias okrągły apostrof LK zamknij nawias kwadratowy NdLCzs otwórz nawias klamrowy Kc$dsuj9b średnik apostrof zamknij nawias okrągły średnik.
Linia 29. zamiany znak równości otwórz nawias okrągły typeof zamiany znak równości znak równości apostrof number apostrof znak zapytania zamiany dwukropek 0 zamknij nawias okrągły plus 1 średnik.
Linia 30. highlightBlock otwórz nawias okrągły apostrof yPfKaJOMSvBqb znak zapytania średnik otwórz nawias kwadratowy yvg procent apostrof zamknij nawias okrągły średnik.
Linia 31. zmieniono znak równości true średnik.
Linia 32. highlightBlock otwórz nawias okrągły apostrof znak zapytania Cw kratka minus KHJ dwukropek minus $9b zamknij nawias okrągły EOKpSV apostrof zamknij nawias okrągły średnik.
Linia 33. pomocnicza znak równości tablica otwórz nawias kwadratowy otwórz nawias okrągły j minus 1 zamknij nawias okrągły zamknij nawias kwadratowy średnik.
Linia 34. highlightBlock otwórz nawias okrągły apostrof 7OR zamknij nawias klamrowy otwórz nawias klamrowy t otwórz nawias ostrokątny strong zamknij nawias ostrokątny 0jCM$U5g82 zamknij nawias kwadratowy znak równości apostrof zamknij nawias okrągły średnik.
Linia 35. tablica otwórz nawias kwadratowy otwórz nawias okrągły j minus 1 zamknij nawias okrągły zamknij nawias kwadratowy znak równości tablica otwórz nawias kwadratowy otwórz nawias okrągły otwórz nawias okrągły j minus 1 zamknij nawias okrągły minus 1 zamknij nawias okrągły zamknij nawias kwadratowy średnik.
Linia 36. highlightBlock otwórz nawias okrągły apostrof wV at plus H otwórz nawias kwadratowy h asterysk prawy ukośnik mji kareta DI średnik k otwórz nawias klamrowy B przecinek apostrof zamknij nawias okrągły średnik.
Linia 37. tablica otwórz nawias kwadratowy otwórz nawias okrągły otwórz nawias okrągły j minus 1 zamknij nawias okrągły minus 1 zamknij nawias okrągły zamknij nawias kwadratowy znak równości pomocnicza średnik.
Linia 38. zamknij nawias klamrowy.
Linia 39. highlightBlock otwórz nawias okrągły apostrof UraNfKcAhp2 otwórz nawias okrągły xOLXu2It apostrof zamknij nawias okrągły średnik.
Linia 40. zamknij nawias klamrowy.
Linia 41. highlightBlock otwórz nawias okrągły apostrof procent v zamknij nawias okrągły kFvJtb otwórz nawias okrągły fT prawy ukośnik 4nX6X prawy ukośnik C apostrof zamknij nawias okrągły średnik.
Linia 42. if otwórz nawias okrągły wykrzyknik zmieniono zamknij nawias okrągły otwórz nawias klamrowy.
Linia 43. highlightBlock otwórz nawias okrągły apostrof otwórz nawias klamrowy xj średnik dwukropek zamknij nawias kwadratowy b minus 8R tylda Gz``e otwórz nawias klamrowy sm plus apostrof zamknij nawias okrągły średnik.
Linia 44. break średnik.
Linia 45. zamknij nawias klamrowy.
Linia 46. highlightBlock otwórz nawias okrągły apostrof 7VWsvB prawy ukośnik średnik `OmF2T minus kropka Pqp2 apostrof zamknij nawias okrągły średnik.
Linia 47. zamknij nawias klamrowy.
Linia 48. highlightBlock otwórz nawias okrągły apostrof A6kr plus E kareta Hrv tylda otwórz nawias okrągły kratka 6zM0 zamknij nawias okrągły AX apostrof zamknij nawias okrągły średnik.
Linia 49. window kropka alert otwórz nawias okrągły apostrof Tablica posortowana dwukropek apostrof plus String otwórz nawias okrągły tablica zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 50. highlightBlock otwórz nawias okrągły apostrof at at 6yv zamknij nawias kwadratowy A prawy ukośnik $Qjn otwórz nawias ostrokątny prawy ukośnik strong zamknij nawias ostrokątny.
Linia 51. Q znak równości 3tN otwórz nawias kwadratowy apostrof zamknij nawias okrągły średnik.
Linia 52. window kropka alert otwórz nawias okrągły apostrof Liczba porównań dwukropek apostrof plus String otwórz nawias okrągły por podkreślnik C3 podkreślnik B3wnania zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 53. highlightBlock otwórz nawias okrągły apostrof 5c3$X0U9 zamknij nawias kwadratowy u at VXlE minus 1Z otwórz nawias okrągły średnik apostrof zamknij nawias okrągły średnik.
Linia 54. window kropka alert otwórz nawias okrągły apostrof Liczba zamian dwukropek apostrof plus String otwórz nawias okrągły zamiany zamknij nawias okrągły zamknij nawias okrągły średnik.
var tablica, n, por_C3_B3wnania, zamiany, i, zmieniono, j, pomocnicza;
highlightBlock('#7RIrn=iFkAf|eoJP[gt');
tablica = [4, 6, 8, 2, 3, 5, 1, 9, 0, 7];
highlightBlock('),d!qg0Jy2[|5w~Mlon');
n = tablica.length;
highlightBlock('CEpJAJ(:y}x8Y01H_Q='); por_C3_B3wnania = 0; highlightBlock('I_Osc}1Rh_$Dh,(n{#Ox'); zamiany = 0; highlightBlock('7VWsvB/;OmF2T-.Pqp2');
var i_end = n - 2;
var i_inc = 1;
if (0 > i_end) {
i_inc = -i_inc;
}
for (i = 0; i_inc >= 0 ? i <= i_end : i >= i_end; i += i_inc) {
highlightBlock('J:ENc0%n]~00#4LS]-
,');
zmieniono = false;
highlightBlock('UraNfKcAhp2(xOLXu2It');
var j_end = n - (i - 1);
var j_inc = 1;
if (1 > j_end) {
j_inc = -j_inc;
}
for (j = 1; j_inc >= 0 ? j <= j_end : j >= j_end; j += j_inc) {
highlightBlock('KBA4;$mLG/wy*~#vcvCY');
por_C3_B3wnania = (typeof por_C3_B3wnania == 'number' ? por_C3_B3wnania : 0) + 1;
highlightBlock('.nF{H]q-+pt.nW{Kk6a0');
if (tablica[(j - 1)] > tablica[((j - 1) - 1)]) {
highlightBlock('LK]NdLCzs{Kc$dsuj9b;');
zamiany = (typeof zamiany == 'number' ? zamiany : 0) + 1;
highlightBlock('yPfKaJOMSvBqb?;[yvg%');
zmieniono = true;
highlightBlock('?Cw#-KHJ:-$9b)EOKpSV');
pomocnicza = tablica[(j - 1)];
highlightBlock('7OR}{t0jCM$U5g82]=');
tablica[(j - 1)] = tablica[((j - 1) - 1)];
highlightBlock('wV@+H[h*/mji^DI;k{B,');
tablica[((j - 1) - 1)] = pomocnicza;
}
highlightBlock('UraNfKcAhp2(xOLXu2It');
}
highlightBlock('%v)kFvJtb(fT/4nX6X/C');
if (!zmieniono) {
highlightBlock('{xj;:]b-8R~Gz``e{sm+');
break;
}
highlightBlock('7VWsvB/;`OmF2T-.Pqp2');
}
highlightBlock('A6kr+E^Hrv~(#6zM0)AX');
window.alert('Tablica posortowana: ' + String(tablica));
highlightBlock('@@6yv]A/$Qjn
Q=3tN[');
window.alert('Liczba porównań: ' + String(por_C3_B3wnania));
highlightBlock('5c3$X0U9]u@VXlE-1Z(;');
window.alert('Liczba zamian: ' + String(zamiany));Polecenie 3