Continuamos con algo muy parecido a lo que hicimos en la clase anterior, pero en vez de mostrar a la
inversa, modificar el arreglo a la inversa, es decir, la idea no es solamente imprimir al revés el
resultado del arreglo, porque lo que hicimos acá es mostrar, imprimir a la inversa.
Pero ahora la idea es modificar el arreglo, darlo vuelta y ordenar los elementos al revés, pero modificando
los datos del arreglo, los índices con sus valores.
Entonces la idea es mutar el arreglo en sí, que sea mutable.
Entonces vamos a copiar este ejemplo, lo pegamos.
Mutables redactó Bien, vamos a limpiar un poco lo que quitamos, lo quitamos.
Y quitamos esto.
Bien, esto lo mantenemos los datos, el total, el Legg, ordenamos y mostremos los datos.
Ahora la idea es modificar los datos, darlo vuelta, pero el arreglo, el contenido for partimos en
cero y lo mismo.
Total, bien.
Lo primero es obtener el elemento actual del índice en cuestión actual.
Igual obtenemos el elemento productos y perfecto y también obtenemos el último o más que último, el
inverso igual productos.
Bueno, y cómo tenemos el inverso?
Total le cantil elementos total menos 1 obtenemos el último menos y ahí obtenemos el inverso del actual.
Entonces la idea es colocar el actual en la posición del último y el último en la posición del lector.
Entonces, ahora exepto al revés.
Esto saca punto y coma.
Igual inverso.
Entonces la posición actual colocamos el inverso y.
En la posición inversa colocamos el actual.
Al final es como una regla de tres.
Dar vuelta en esta posición colocamos el actual y en esta posición colocamos el inverso.
Eso estamos haciendo dando vuelta.
Estamos casi listo, pero vamos a tener un pequeño problema.
El tema que va a ordenar hasta la mitad perfecto, es decir, hasta el total dividido en dos, ordena
perfecto.
Justo es el punto de inflexión donde termina de ordenar y dar vuelta todos los elementos, ya que es
el punto de encuentro entre los elementos actuales y yo, puesto o límite superior o límite inferior,
como queramos llamar.
Entonces es como el punto de inflexión.
Ahí tenemos que cortar porque, por ejemplo, si lo dejamos tal cual y imprimimos lo de copiar, acá
modificamos el arreglo.
Recuerden que mutables.
Por lo tanto, está modificando el arreglo en sí, la referencia, los datos.
Entonces miras, imprimo esto, no haber cambio, porque estamos llegando hasta el total y no hasta
la mitad.
Pero bueno, veamos qué sucede.
Ejecutamos.
Se fijan, no hay ningún cambio de la PC.
K, M, s.
Igual que la anterior se fija, no hay ningún cambio.
Bueno, porque falta el punto de quiebre, el punto de inflexión, que sería solamente que ordena hasta
la mitad.
Porque si después sigue ordenando más allá de la mitad, empieza a revertir lo que había hecho anteriormente
el orden inverso.
Al final empieza a revertir el inverso.
Por lo tanto, queda tal cual como estaba antes.
Pero si dividimos en dos el total.
Y levantamos hoy tenemos la magia, se fijan, acá está tal cual ya hasta la inversa, usando a la inversa.
Parte del último se fijan y ordena de forma descendente, pero modificando los índices, modificando
la estructura interna de la regla, matándolo.
Ya se la idea, pero tiene que ser hasta el punto de quiebre que justamente la mitad para que resulte.
Porque si no empieza a revertir el ordenamiento que hizo o el proceso a la inversa que realizó, lo
empieza a invertir y queda como estaba antes.
Ahora es todo acá y lo mismo que colocar, por ejemplo.
Total, recuerde que este total es el total del arreglo, así que lo dejamos tal cual, pero vamos a
tener otro total.
Para modificar ese total total.
2.
Esto sería otra forma y acá sería hasta total.
2.
Acá en vez de total usamos total.
2.
Acá hasta el momento lo mismo, pero a medida que va ordenando y dando vuelta los elementos va de comentando
el total.
2 No el total e importante que es el total.
2.
Este nuevo total entonces al final va a llegar hasta el punto de inflexión o el punto de quiebre, que
es justamente la mitad.
Entonces voy a ejecutar y va a ser lo mismo.
Se fijan el último elemento, el da, el penúltimo, la ve, se dé y está ordenado de forma descendente,
al revés, así que está perfecto.
Incluso esto se podría llevar a un método y lo podremos reutilizar.
Claro, porque si lo corto no surge efecto, entonces podríamos implementar un método.
Por ejemplo, un públic static.
Un método estático tiene que ser estático porque lo vamos a utilizar dentro del MEIC y también estático.
Voy arreglo inverso
que recibe el arreglo
arreglo y lo pegamos.
Obviamente, en vez de productos, el arreglo lo podríamos y lo tenemos que cambiar, modificar.
El total lo dejamos por ahora, lo dejamos.
Cambiamos esto, faltaría solamente el total acá, pero el total es lo mismo.
Pero este no cambia, te cambia, se incrementa, pero este total lo mantenemos estático para poder
ir avanzando a la inversa.
Ya tenemos nuestro algoritmo, entonces ahora usamos este método.
Productos.
Entonces, cómo está a la inversa dejamos un solo foro porque todos son iguales.
Dejamos una sola.
Ya está perfecto.
Se fijan, primero ordenamos y después cambiamos a la inversa.
Ya lo tenemos, sí lo comentamos.
Qué ha ordenado de forma ascendente?
Pero no Descendants.
Ahora bien, esto lo implementamos de forma manual con este algoritmo, pero también lo podemos implementar
con el API de Colección Villava y ya viene listo, así que también otra forma es usar Collections.
La clase de colección de Java ya útil punto reverse a la inversa, pero este método Reverse requiere
un tipo list díada del API de colección, una lista de Java.
Después vamos a ver, después vamos a trabajar con listas y lo vamos a ver mucho más en detalle.
Por ahora, solamente para ordenar.
Entonces, para poder pasar este arreglo, productos como una lista lo tenemos que convertir.
Pero también podemos utilizar el GIAL.
Arráiz Temimos.
Esta misma clase a arráiz.
Punto.
El método como lista hace la lista y recibe por argumento el arreglo.
Productos.
Por lo tanto, esto acá convierte el arreglo productos del tipo string a una lista, del tipo string
a una lista y reversa.
Y como el arreglo es mutable, en este caso se va a modificar y el resultado sería idéntico a todo acá.
Pero la diferencia es que ya viene listo.
Viene implementado en el JDK en Java.
Se fijan, también está ordenado.
Consort lo ordena y con Reverse lo da vuelta.
Entonces dó forma la propia, la explícita implementada por nosotros.
Hola que viene en el JDK utilizando la piko lecchi.
Bueno, siempre mejor saber y aprender.
Cómo se hace por detrás de escena?
Estos algoritmos, pero antes finalizar.
Prefiero dejarlo con nuestra implementación y la comentamos para que la tenga y la guarden también.
Nada más continuamos en la siguiente clase.