Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Algoritmi di ordinamento in matlab e Java, Sintesi del corso di Elementi di Informatica

Algoritmi di ordinamento in matlab e Java

Tipologia: Sintesi del corso

2021/2022

In vendita dal 05/08/2023

vale_____
vale_____ 🇮🇹

10 documenti

1 / 3

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
ALGORITMI DI ORDINAMENTO (MATLAB E JAVA)
MATLAB
1. % Selection Sort For
for i = 1:(length(v)-1)
k = i;
for j = (i+1): length(v)
if v(k) > v(j)
k = j;
end
end
if i ~= k
temp = v(i);
v(i) = v(k);
v(k) = temp;
end
end
2. % Bubble Sort For
for i=2:length(v)
for j=length(v):-1:i
if v(j)<v(j-1)
temp = v(j);
v(j) = v(j-1);
v(j-1) = temp;
end
end
end
3. % Insertion Sort For
for i=1:length(v)
temp=v(i);
j=i-1;
while j>0 && v(j)>temp
v(j+1)=v(j);
j = j - 1;
end
v(j+1) = temp;
end
JAVA
1. BUBBLE SORT – O(n^2)
public void bubbleSort(int[] v) {
for (int i = 0; i < v.length - 1; i++) {
for (int j = 0; j < v.length - i - 1; j++) {
if (v[j] > v[j + 1]) {
int temp = v[j];
v[j] = v[j + 1];
v[j + 1] = temp;
}
}
}
}
pf3

Anteprima parziale del testo

Scarica Algoritmi di ordinamento in matlab e Java e più Sintesi del corso in PDF di Elementi di Informatica solo su Docsity!

ALGORITMI DI ORDINAMENTO (MATLAB E JAVA)

MATLAB

1. % Selection Sort For for i = 1:(length(v)-1) k = i; for j = (i+1): length(v) if v(k) > v(j) k = j; end end if i ~= k temp = v(i); v(i) = v(k); v(k) = temp; end end

  1. % Bubble Sort For for i=2:length(v) for j=length(v):-1:i if v(j)<v(j-1) temp = v(j); v(j) = v(j-1); v(j-1) = temp; end end end
  2. % Insertion Sort For for i=1:length(v) temp=v(i); j=i-1; while j>0 && v(j)>temp v(j+1)=v(j); j = j - 1; end v(j+1) = temp; end JAVA
  3. BUBBLE SORT – O(n^2) public void bubbleSort(int[] v) { for (int i = 0 ; i < v.length - 1 ; i++) { for (int j = 0 ; j < v.length - i - 1 ; j++) { if (v[j] > v[j + 1 ]) { int temp = v[j]; v[j] = v[j + 1 ]; v[j + 1 ] = temp; } } } }
  1. SELECTION SORT – O(n^2) public static void selectionSort(int[] v) { for (int i = 0 ; i < v.length - 1 ; i++) { // ricerca minimo int min = i; for (int j = i + 1 ; j < v.length; j++) { if (v[j] < v[min]) { min = j; // nuovo minimo } } // Scambio il minimo con il primo elemento dell'array non ordinato int temp = v[min]; v[min] = v[i]; v[i] = temp; } }
  2. INSERTION SORT – O(n^2) public void insertionSort(int[] v) { for (int i = 1 ; i < v.length; ++i) { int key = v[i]; int j = i - 1 ; while (j >= 0 && v[j] > key) { v[j + 1 ] = v[j]; j--; } v[j + 1 ] = key; } }
  3. MERGE SORT - O(n*log n) public void sort(int[] v) { if (v.length < 2 ) { return; } int mid = v.length / 2 ; int[] left = new int[mid]; int[] right = new int[v.length - mid]; for (int i = 0 ; i < mid; i++) { left[i] = v[i]; } for (int i = mid; i < v.length; i++) { right[i - mid] = v[i]; } sort(left); sort(right); merge(left, right, v); } private void merge(int[] left, int[] right, int[] v) { int i = 0 , j = 0 , k = 0 ; while (i < left.length && j < right.length) { if (left[i] <= right[j]) { v[k++] = left[i++]; } else { v[k++] = right[j++];