1public static void main(String[] args) {
2 int [] a = {7,2,4,8,3,9,1,5,10,6};
3 int temporal = 0;
4
5 for (int i = 0; i < a.length; i++) {
6 for (int j = 1; j < (a.length - i); j++) {
7 if (a[j - 1] > a[j]) {
8 temporal = a[j - 1];
9 a[j - 1] = a[j];
10 a[j] = temporal;
11 }
12 }
13 }
14 System.out.println(Arrays.toString(a));
15}
16
1public static void main(String[] args) {
2 optimizedBubbleSort(new int[]{1,2,4,5,6}); // Iteración 0, array ordenado
3 optimizedBubbleSort(new int[]{11,2,44,5,16}); // Iteración 2, array ordenado
4 optimizedBubbleSort(new int[]{0,8,74,5,1}); // Iteración 3, array ordenado
5}
6
7 private static void optimizedBubbleSort(int [] list){
8 for(int i =0; i< list.length; i++){
9 boolean sorted = true; // asumo que para la iteración i el listado es ordenado,
10 for(int j =0; j< list.length - i - 1; j++){ // en cada iteración los elementos desde la posición (length-i) estan ordenados, por lo tanto solo recorro hasta esa posición
11 if(list[j] > list[j+1]){
12 int temp = list[j];
13 list[j] = list[j+1];
14 list[j+1] = temp;
15 sorted = false;
16 }
17 }
18 if(sorted){
19 System.out.println(String.format("Iteración %s, array ordenado", i));
20 return;
21 }
22 }
23 }
24
1int a[] = {5,3,2,7,10,1};
2 for (int x = 0; x < a.length; x++) {
3 for (int i = 0; i < a.length-x-1; i++) {
4 if(a[i] < a[i+1]){
5 int tmp = a[i+1];
6 a[i+1] = a[i];
7 a[i] = tmp;
8 }
9 }
10 }
11