1
00:00:00,510 --> 00:00:05,160
Continuamos con algo muy parecido a lo que hicimos en la clase anterior, pero en vez de mostrar a la

2
00:00:05,160 --> 00:00:11,550
inversa, modificar el arreglo a la inversa, es decir, la idea no es solamente imprimir al revés el

3
00:00:11,550 --> 00:00:16,740
resultado del arreglo, porque lo que hicimos acá es mostrar, imprimir a la inversa.

4
00:00:16,770 --> 00:00:23,040
Pero ahora la idea es modificar el arreglo, darlo vuelta y ordenar los elementos al revés, pero modificando

5
00:00:23,040 --> 00:00:26,220
los datos del arreglo, los índices con sus valores.

6
00:00:26,340 --> 00:00:30,070
Entonces la idea es mutar el arreglo en sí, que sea mutable.

7
00:00:30,570 --> 00:00:33,540
Entonces vamos a copiar este ejemplo, lo pegamos.

8
00:00:35,590 --> 00:00:44,500
Mutables redactó Bien, vamos a limpiar un poco lo que quitamos, lo quitamos.

9
00:00:46,490 --> 00:00:47,470
Y quitamos esto.

10
00:00:48,670 --> 00:00:54,620
Bien, esto lo mantenemos los datos, el total, el Legg, ordenamos y mostremos los datos.

11
00:00:54,740 --> 00:01:03,050
Ahora la idea es modificar los datos, darlo vuelta, pero el arreglo, el contenido for partimos en

12
00:01:03,050 --> 00:01:05,000
cero y lo mismo.

13
00:01:06,230 --> 00:01:08,680
Total, bien.

14
00:01:08,750 --> 00:01:14,920
Lo primero es obtener el elemento actual del índice en cuestión actual.

15
00:01:15,220 --> 00:01:24,590
Igual obtenemos el elemento productos y perfecto y también obtenemos el último o más que último, el

16
00:01:24,590 --> 00:01:28,710
inverso igual productos.

17
00:01:29,610 --> 00:01:31,400
Bueno, y cómo tenemos el inverso?

18
00:01:31,460 --> 00:01:41,720
Total le cantil elementos total menos 1 obtenemos el último menos y ahí obtenemos el inverso del actual.

19
00:01:41,960 --> 00:01:48,670
Entonces la idea es colocar el actual en la posición del último y el último en la posición del lector.

20
00:01:49,250 --> 00:01:51,720
Entonces, ahora exepto al revés.

21
00:01:51,920 --> 00:01:54,440
Esto saca punto y coma.

22
00:01:55,700 --> 00:01:56,930
Igual inverso.

23
00:01:59,490 --> 00:02:03,060
Entonces la posición actual colocamos el inverso y.

24
00:02:04,190 --> 00:02:06,660
En la posición inversa colocamos el actual.

25
00:02:09,880 --> 00:02:11,450
Al final es como una regla de tres.

26
00:02:11,550 --> 00:02:16,620
Dar vuelta en esta posición colocamos el actual y en esta posición colocamos el inverso.

27
00:02:16,770 --> 00:02:18,420
Eso estamos haciendo dando vuelta.

28
00:02:18,660 --> 00:02:21,600
Estamos casi listo, pero vamos a tener un pequeño problema.

29
00:02:21,810 --> 00:02:26,750
El tema que va a ordenar hasta la mitad perfecto, es decir, hasta el total dividido en dos, ordena

30
00:02:26,760 --> 00:02:27,210
perfecto.

31
00:02:27,300 --> 00:02:31,840
Justo es el punto de inflexión donde termina de ordenar y dar vuelta todos los elementos, ya que es

32
00:02:31,840 --> 00:02:38,160
el punto de encuentro entre los elementos actuales y yo, puesto o límite superior o límite inferior,

33
00:02:38,250 --> 00:02:39,070
como queramos llamar.

34
00:02:39,160 --> 00:02:40,800
Entonces es como el punto de inflexión.

35
00:02:40,920 --> 00:02:47,460
Ahí tenemos que cortar porque, por ejemplo, si lo dejamos tal cual y imprimimos lo de copiar, acá

36
00:02:47,460 --> 00:02:48,510
modificamos el arreglo.

37
00:02:48,600 --> 00:02:49,770
Recuerden que mutables.

38
00:02:50,130 --> 00:02:54,340
Por lo tanto, está modificando el arreglo en sí, la referencia, los datos.

39
00:02:54,720 --> 00:03:00,330
Entonces miras, imprimo esto, no haber cambio, porque estamos llegando hasta el total y no hasta

40
00:03:00,330 --> 00:03:00,750
la mitad.

41
00:03:00,810 --> 00:03:02,620
Pero bueno, veamos qué sucede.

42
00:03:04,440 --> 00:03:05,280
Ejecutamos.

43
00:03:06,060 --> 00:03:09,380
Se fijan, no hay ningún cambio de la PC.

44
00:03:09,520 --> 00:03:10,710
K, M, s.

45
00:03:11,380 --> 00:03:14,340
Igual que la anterior se fija, no hay ningún cambio.

46
00:03:15,020 --> 00:03:20,200
Bueno, porque falta el punto de quiebre, el punto de inflexión, que sería solamente que ordena hasta

47
00:03:20,200 --> 00:03:20,650
la mitad.

48
00:03:20,730 --> 00:03:26,890
Porque si después sigue ordenando más allá de la mitad, empieza a revertir lo que había hecho anteriormente

49
00:03:27,010 --> 00:03:27,880
el orden inverso.

50
00:03:28,000 --> 00:03:30,490
Al final empieza a revertir el inverso.

51
00:03:30,580 --> 00:03:32,160
Por lo tanto, queda tal cual como estaba antes.

52
00:03:32,500 --> 00:03:34,240
Pero si dividimos en dos el total.

53
00:03:35,620 --> 00:03:44,620
Y levantamos hoy tenemos la magia, se fijan, acá está tal cual ya hasta la inversa, usando a la inversa.

54
00:03:45,490 --> 00:03:54,190
Parte del último se fijan y ordena de forma descendente, pero modificando los índices, modificando

55
00:03:54,190 --> 00:03:56,880
la estructura interna de la regla, matándolo.

56
00:03:57,070 --> 00:04:02,170
Ya se la idea, pero tiene que ser hasta el punto de quiebre que justamente la mitad para que resulte.

57
00:04:02,260 --> 00:04:08,140
Porque si no empieza a revertir el ordenamiento que hizo o el proceso a la inversa que realizó, lo

58
00:04:08,140 --> 00:04:10,470
empieza a invertir y queda como estaba antes.

59
00:04:10,910 --> 00:04:13,630
Ahora es todo acá y lo mismo que colocar, por ejemplo.

60
00:04:13,690 --> 00:04:18,490
Total, recuerde que este total es el total del arreglo, así que lo dejamos tal cual, pero vamos a

61
00:04:18,490 --> 00:04:19,770
tener otro total.

62
00:04:21,380 --> 00:04:23,220
Para modificar ese total total.

63
00:04:23,430 --> 00:04:23,780
2.

64
00:04:24,230 --> 00:04:27,530
Esto sería otra forma y acá sería hasta total.

65
00:04:27,560 --> 00:04:27,890
2.

66
00:04:28,000 --> 00:04:29,840
Acá en vez de total usamos total.

67
00:04:29,840 --> 00:04:30,170
2.

68
00:04:30,310 --> 00:04:37,880
Acá hasta el momento lo mismo, pero a medida que va ordenando y dando vuelta los elementos va de comentando

69
00:04:38,570 --> 00:04:39,030
el total.

70
00:04:39,060 --> 00:04:41,190
2 No el total e importante que es el total.

71
00:04:41,200 --> 00:04:41,420
2.

72
00:04:41,720 --> 00:04:47,960
Este nuevo total entonces al final va a llegar hasta el punto de inflexión o el punto de quiebre, que

73
00:04:47,960 --> 00:04:48,950
es justamente la mitad.

74
00:04:49,520 --> 00:04:51,560
Entonces voy a ejecutar y va a ser lo mismo.

75
00:04:52,130 --> 00:05:00,290
Se fijan el último elemento, el da, el penúltimo, la ve, se dé y está ordenado de forma descendente,

76
00:05:00,500 --> 00:05:02,000
al revés, así que está perfecto.

77
00:05:02,480 --> 00:05:05,500
Incluso esto se podría llevar a un método y lo podremos reutilizar.

78
00:05:05,630 --> 00:05:10,730
Claro, porque si lo corto no surge efecto, entonces podríamos implementar un método.

79
00:05:11,000 --> 00:05:13,520
Por ejemplo, un públic static.

80
00:05:14,360 --> 00:05:18,680
Un método estático tiene que ser estático porque lo vamos a utilizar dentro del MEIC y también estático.

81
00:05:19,130 --> 00:05:20,900
Voy arreglo inverso

82
00:05:23,630 --> 00:05:24,950
que recibe el arreglo

83
00:05:28,070 --> 00:05:30,770
arreglo y lo pegamos.

84
00:05:31,370 --> 00:05:37,460
Obviamente, en vez de productos, el arreglo lo podríamos y lo tenemos que cambiar, modificar.

85
00:05:39,890 --> 00:05:42,360
El total lo dejamos por ahora, lo dejamos.

86
00:05:42,570 --> 00:05:48,600
Cambiamos esto, faltaría solamente el total acá, pero el total es lo mismo.

87
00:05:49,890 --> 00:05:57,210
Pero este no cambia, te cambia, se incrementa, pero este total lo mantenemos estático para poder

88
00:05:57,300 --> 00:05:58,890
ir avanzando a la inversa.

89
00:05:59,550 --> 00:06:02,880
Ya tenemos nuestro algoritmo, entonces ahora usamos este método.

90
00:06:06,050 --> 00:06:06,800
Productos.

91
00:06:12,910 --> 00:06:17,470
Entonces, cómo está a la inversa dejamos un solo foro porque todos son iguales.

92
00:06:18,390 --> 00:06:19,400
Dejamos una sola.

93
00:06:24,430 --> 00:06:25,290
Ya está perfecto.

94
00:06:25,530 --> 00:06:28,980
Se fijan, primero ordenamos y después cambiamos a la inversa.

95
00:06:30,680 --> 00:06:32,670
Ya lo tenemos, sí lo comentamos.

96
00:06:35,700 --> 00:06:38,050
Qué ha ordenado de forma ascendente?

97
00:06:39,570 --> 00:06:40,280
Pero no Descendants.

98
00:06:40,650 --> 00:06:46,620
Ahora bien, esto lo implementamos de forma manual con este algoritmo, pero también lo podemos implementar

99
00:06:46,620 --> 00:06:54,510
con el API de Colección Villava y ya viene listo, así que también otra forma es usar Collections.

100
00:06:54,570 --> 00:07:02,310
La clase de colección de Java ya útil punto reverse a la inversa, pero este método Reverse requiere

101
00:07:02,400 --> 00:07:06,380
un tipo list díada del API de colección, una lista de Java.

102
00:07:06,520 --> 00:07:10,890
Después vamos a ver, después vamos a trabajar con listas y lo vamos a ver mucho más en detalle.

103
00:07:10,920 --> 00:07:12,630
Por ahora, solamente para ordenar.

104
00:07:12,760 --> 00:07:18,600
Entonces, para poder pasar este arreglo, productos como una lista lo tenemos que convertir.

105
00:07:18,660 --> 00:07:20,730
Pero también podemos utilizar el GIAL.

106
00:07:21,240 --> 00:07:22,890
Arráiz Temimos.

107
00:07:23,070 --> 00:07:25,530
Esta misma clase a arráiz.

108
00:07:25,840 --> 00:07:26,400
Punto.

109
00:07:26,550 --> 00:07:31,230
El método como lista hace la lista y recibe por argumento el arreglo.

110
00:07:31,290 --> 00:07:32,010
Productos.

111
00:07:33,540 --> 00:07:40,290
Por lo tanto, esto acá convierte el arreglo productos del tipo string a una lista, del tipo string

112
00:07:40,410 --> 00:07:42,490
a una lista y reversa.

113
00:07:42,750 --> 00:07:49,550
Y como el arreglo es mutable, en este caso se va a modificar y el resultado sería idéntico a todo acá.

114
00:07:49,830 --> 00:07:51,540
Pero la diferencia es que ya viene listo.

115
00:07:51,630 --> 00:07:54,360
Viene implementado en el JDK en Java.

116
00:07:59,430 --> 00:08:01,020
Se fijan, también está ordenado.

117
00:08:02,820 --> 00:08:05,830
Consort lo ordena y con Reverse lo da vuelta.

118
00:08:06,210 --> 00:08:10,800
Entonces dó forma la propia, la explícita implementada por nosotros.

119
00:08:11,940 --> 00:08:15,470
Hola que viene en el JDK utilizando la piko lecchi.

120
00:08:15,720 --> 00:08:17,430
Bueno, siempre mejor saber y aprender.

121
00:08:17,430 --> 00:08:18,760
Cómo se hace por detrás de escena?

122
00:08:18,870 --> 00:08:20,670
Estos algoritmos, pero antes finalizar.

123
00:08:22,300 --> 00:08:27,540
Prefiero dejarlo con nuestra implementación y la comentamos para que la tenga y la guarden también.

124
00:08:27,670 --> 00:08:30,180
Nada más continuamos en la siguiente clase.
