Napište funkci, které dostane pole čísel a setřídí je pomocí Bubblesortu.
// všem polím v dokumentu přidáme novou funkci
Array.prototype.bubblesort = function() {
var sorted = false
while (!sorted) {
sorted = true
for (var i = 1; i < this.length; i++) {
if (this[i] < this[i-1]) {
var tmp = this[i];
this[i] = this[i-1];
this[i-1] = tmp;
sorted = false;
}
}
}
}
// jednomu konkrétnímu tlačítku nastavíme funkci při události kliknutí
document.getElementById("tlacitko").addEventListener("click", function() {
var pole = document.getElementById("pole");
var arr = eval(pole.value);
arr.bubblesort();
pole.value = "["+arr.toString()+"]";
return false;
});
Napište funkci, která dostane pole a utřídí ho přímým výběrem.
#include <stdio.h>
void selectionsort(int *pole, int delka) {
// Procházíme pole od začátku a necháváme ho za sebou utříděné
for (int i = 0; i < delka; i++) {
int nejmensi = i;
// Najdeme index nejmenšího prvku ze zbytku pole
for (int j = i+1; j < delka; j++) {
if (pole[j] < pole[nejmensi])
nejmensi = j;
}
if (nejmensi != i) {
// Dáme nejmenší prvek ze zbytku pole na i-tou pozici
int tmp = pole[i];
pole[i] = pole[nejmensi];
pole[nejmensi] = tmp;
}
}
}
int main() {
int pole[] = {13, 12, 16, 22, 9, 11, 19, 22, 2, 7, 14, 19, 3, 6, 23, 27, 2, 9, 2, 17};
int delka = sizeof(pole)/sizeof(int);
selectionsort(pole, delka);
for (int i=0; i<delka; i++)
printf("%i ", pole[i]); // Rychlejší obdoba cout << pole[i];
printf("\n"); // Rychlejší obdoba cout << endl;
}