4 Ejemplo de puntero al array con copia y funcion swap

 

Funci贸n Swap en JavaScript: Intercambiando elementos en un array

¡Hola, comunidad! 馃憢 Hoy exploraremos c贸mo intercambiar elementos en un array usando una funci贸n swap. Este concepto es fundamental en algoritmos de ordenamiento y manipulaci贸n de datos. ¡Vamos al c贸digo!

馃搶 Problema

Supongamos que tenemos un array:

javascript
Copy
Download
let arr = [2, -7, 5, 7, 1, -1, 0, -14];

Queremos intercambiar, por ejemplo, el elemento en la posici贸n 1 (-7) con el de la posici贸n 5 (-1).

馃挕 Soluci贸n: Funci贸n Swap

La funci贸n swap recibe un array y dos 铆ndices, y realiza el intercambio:

javascript
Copy
Download
function swap(array, index1, index2) {
    let aux = array[index1];     // Guardamos temporalmente el valor de index1
    array[index1] = array[index2]; // Reemplazamos index1 con index2
    array[index2] = aux;         // Asignamos el valor temporal a index2
}

⚡ ¿C贸mo funciona?

  1. Copia el valor original: Usamos una variable aux para evitar perder el dato durante el intercambio.

  2. Reemplaza los valores: El elemento en index1 toma el valor de index2, y viceversa.

馃殌 Ejemplo pr谩ctico

javascript
Copy
Download
let arr = [2, -7, 5, 7, 1, -1, 0, -14];
swap(arr, 1, 5);
console.log(arr); // Output: [2, -1, 5, 7, 1, -7, 0, -14]

✅ El elemento en la posici贸n 1 ahora es -1, y el de la posici贸n 5 es -7.

馃攳 ¿Por qu茅 usar una variable auxiliar?

Sin aux, perder铆amos el valor original durante el reemplazo. Por ejemplo:

javascript
Copy
Download
// ❌ Sin auxiliar (error com煤n)
array[index1] = array[index2]; // Sobrescribe el valor original
array[index2] = array[index1]; // ¡Ambos 铆ndices tendr铆an el mismo valor!

馃幆 Bonus: Swap con desestructuraci贸n (ES6+)

En JavaScript moderno, podemos simplificar el c贸digo:

javascript
Copy
Download
[array[index1], array[index2]] = [array[index2], array[index1]];

¡Una l铆nea sin variables auxiliares!


馃摚 ¿Te gust贸?
Este principio es clave en algoritmos como Bubble Sort o Quick Sort. Si quieres profundizar en c贸mo JavaScript maneja arrays y punteros en memoria, ¡av铆same en los comentarios! 馃憞

¡Nos vemos en el pr贸ximo post

C贸mo intercambiar elementos en un array: Funci贸n Swap en JavaScript

¡Hola, comunidad! 馃憢 ¿C贸mo est谩n? ¡Yo m谩s que bien! 馃槉

Hoy aprenderemos a intercambiar elementos en un array (tambi茅n conocido como swap). ¿Qu茅 significa esto?

Imaginemos que tenemos un array y queremos cambiar el elemento en la posici贸n 2 por el de la posici贸n 6. Visualmente, ser铆a algo as铆:

plaintext
Copy
Download
Posici贸n 2: 馃崕  →  Posici贸n 6: 馃崒

Despu茅s del intercambio:

plaintext
Copy
Download
Posici贸n 2: 馃崒  →  Posici贸n 6: 馃崕

¡Vamos a hacerlo con c贸digo! Es muy sencillo, as铆 que manos a la obra.


Implementando la funci贸n swap

Definiremos una funci贸n llamada swap que reciba un array y dos 铆ndices (las posiciones a intercambiar):

javascript
Copy
Download
function swap(array, index1, index2) {
    // Guardamos el valor original del primer 铆ndice
    let aux = array[index1];
    
    // Reemplazamos el valor del primer 铆ndice con el del segundo
    array[index1] = array[index2];
    
    // Y finalmente, asignamos el valor guardado (aux) al segundo 铆ndice
    array[index2] = aux;
}

¿C贸mo funciona?

  1. Guardamos temporalmente el valor de array[index1] en aux.

  2. Sobrescribimos array[index1] con el valor de array[index2].

  3. Completamos el intercambio asignando el valor guardado (aux) a array[index2].


Probemos la funci贸n

javascript
Copy
Download
let numeros = [2, -7, 5, 7, 1, -1, 0, -14];

// Intercambiamos el elemento en posici贸n 1 (-7) por el de posici贸n 5 (-1)
swap(numeros, 1, 5);

console.log(numeros); 
// Resultado: [2, -1, 5, 7, 1, -7, 0, -14] ✅

Tambi茅n podemos intercambiar otros elementos:

javascript
Copy
Download
swap(numeros, 0, 1); // Intercambiamos el 2 (posici贸n 0) y el -1 (posici贸n 1)
console.log(numeros); 
// Resultado: [-1, 2, 5, 7, 1, -7, 0, -14] ✅

Bonus: Versi贸n moderna con desestructuraci贸n

En JavaScript moderno, podemos simplificar el swap usando desestructuraci贸n de arrays:

javascript
Copy
Download
function swapModerno(array, i, j) {
    [array[i], array[j]] = [array[j], array[i]];
}

¡M谩s elegante y sin variables temporales!


Conclusi贸n

Aprender a intercambiar elementos es fundamental para algoritmos de ordenamiento (como Bubble Sort) y manipulaci贸n de arrays. ¡Espero que les haya sido 煤til!

¿Quieren profundizar en c贸mo JavaScript maneja los arrays en memoria? Les recomiendo mi post anterior sobre punteros y referencias (link aqu铆 si lo tienes).

¡Nos vemos en el pr贸ximo tutorial! 馃殌

¿Dudas o comentarios? ¡D茅jenlos abajo! 馃憞


馃敼 Recuerden:

javascript
Copy
Download
// Swap cl谩sico ↓
let aux = array[i];
array[i] = array[j];
array[j] = aux;

// Swap moderno ↓
[array[i], array[j]] = [array[j], array[i]];

¡Hasta la pr贸xima!

Comentarios

Entradas m谩s populares de este blog

5 Diccionarios

6 Ejercicio 1

2 Listas