Está en la página 1de 110

BURBUJA

©® Dr. Alfredo Gutiérrez Hdez. 1


20 41 27 85 6 73 52

©® Dr. Alfredo Gutiérrez Hdez. 2


20 41 27 85 6 73 52

©® Dr. Alfredo Gutiérrez Hdez. 3


20 27 41 85 6 73 52

©® Dr. Alfredo Gutiérrez Hdez. 4


20 27 41 6 85 73 52

©® Dr. Alfredo Gutiérrez Hdez. 5


20 27 41 6 73 85 52

©® Dr. Alfredo Gutiérrez Hdez. 6


20 27 41 6 73 52 85

©® Dr. Alfredo Gutiérrez Hdez. 7


20 27 6 41 73 52 85

©® Dr. Alfredo Gutiérrez Hdez. 8


20 27 6 41 52 73 85

©® Dr. Alfredo Gutiérrez Hdez. 9


20 6 27 41 52 73 85

©® Dr. Alfredo Gutiérrez Hdez. 10


6 20 27 41 52 73 85

©® Dr. Alfredo Gutiérrez Hdez. 11


0 1 2 3 4 5 6
20 41 27 85 6 73 52

i:

j: función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 12


0 1 2 3 4 5 6
20 41 27 85 6 73 52

i: 6

j: función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 13


0 1 2 3 4 5 6
20 41 27 85 6 73 52

i: 6

j: función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 14


0 1 2 3 4 5 6
20 41 27 85 6 73 52

i: 6

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 15


0 1 2 3 4 5 6
20 41 27 85 6 73 52

i: 6

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 16


0 1 2 3 4 5 6
20 41 27 85 6 73 52

j j+1

i: 6

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 17


0 1 2 3 4 5 6
20 41 27 85 6 73 52

i: 6

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 18


0 1 2 3 4 5 6
20 41 27 85 6 73 52

i: 6

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 19


0 1 2 3 4 5 6
20 41 27 85 6 73 52

j j+1

i: 6

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 20


0 1 2 3 4 5 6
20 27 41 85 6 73 52

j j+1

i: 6

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 21


0 1 2 3 4 5 6
20 27 41 85 6 73 52

i: 6

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 22


0 1 2 3 4 5 6
20 27 41 85 6 73 52

i: 6

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 23


0 1 2 3 4 5 6
20 27 41 85 6 73 52

j j+1

i: 6

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 24


0 1 2 3 4 5 6
20 27 41 85 6 73 52

i: 6

j: 3 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 25


0 1 2 3 4 5 6
20 27 41 85 6 73 52

i: 6

j: 3 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 26


0 1 2 3 4 5 6
20 27 41 85 6 73 52

j j+1

i: 6

j: 3 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 27


0 1 2 3 4 5 6
20 27 41 6 85 73 52

j j+1

i: 6

j: 3 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 28


0 1 2 3 4 5 6
20 27 41 6 85 73 52

i: 6

j: 4 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 29


0 1 2 3 4 5 6
20 27 41 6 85 73 52

i: 6

j: 4 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 30


0 1 2 3 4 5 6
20 27 41 6 85 73 52

j j+1

i: 6

j: 4 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 31


0 1 2 3 4 5 6
20 27 41 6 73 85 52

j j+1

i: 6

j: 4 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 32


0 1 2 3 4 5 6
20 27 41 6 73 85 52

i: 6

j: 5 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 33


0 1 2 3 4 5 6
20 27 41 6 73 85 52

i: 6

j: 5 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 34


0 1 2 3 4 5 6
20 27 41 6 73 85 52

j j+1

i: 6

j: 5 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 35


0 1 2 3 4 5 6
20 27 41 6 73 52 85

j j+1

i: 6

j: 5 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 36


0 1 2 3 4 5 6
20 27 41 6 73 52 85

i: 6

j: 6 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 37


0 1 2 3 4 5 6
20 27 41 6 73 52 85

i: 6

j: 6 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 38


0 1 2 3 4 5 6
20 27 41 6 73 52 85

i: 5

j: 6 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 39


0 1 2 3 4 5 6
20 27 41 6 73 52 85

i: 5

j: 6 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 40


0 1 2 3 4 5 6
20 27 41 6 73 52 85

i: 5

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 41


0 1 2 3 4 5 6
20 27 41 6 73 52 85

i: 5

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 42


0 1 2 3 4 5 6
20 27 41 6 73 52 85

j j+1

i: 5

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 43


0 1 2 3 4 5 6
20 27 41 6 73 52 85

i: 5

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 44


0 1 2 3 4 5 6
20 27 41 6 73 52 85

i: 5

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 45


0 1 2 3 4 5 6
20 27 41 6 73 52 85

j j+1

i: 5

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 46


0 1 2 3 4 5 6
20 27 41 6 73 52 85

i: 5

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 47


0 1 2 3 4 5 6
20 27 41 6 73 52 85

i: 5

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 48


0 1 2 3 4 5 6
20 27 41 6 73 52 85

j j+1

i: 5

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 49


0 1 2 3 4 5 6
20 27 6 41 73 52 85

j j+1

i: 5

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 50


0 1 2 3 4 5 6
20 27 6 41 73 52 85

i: 5

j: 3 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 51


0 1 2 3 4 5 6
20 27 6 41 73 52 85

i: 5

j: 3 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 52


0 1 2 3 4 5 6
20 27 6 41 73 52 85

j j+1

i: 5

j: 3 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 53


0 1 2 3 4 5 6
20 27 6 41 73 52 85

i: 5

j: 4 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 54


0 1 2 3 4 5 6
20 27 6 41 73 52 85

i: 5

j: 4 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 55


0 1 2 3 4 5 6
20 27 6 41 73 52 85

j j+1

i: 5

j: 4 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 56


0 1 2 3 4 5 6
20 27 6 41 52 73 85

j j+1

i: 5

j: 4 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 57


0 1 2 3 4 5 6
20 27 6 41 52 73 85

i: 5

j: 5 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 58


0 1 2 3 4 5 6
20 27 6 41 52 73 85

i: 5

j: 5 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 59


0 1 2 3 4 5 6
20 27 6 41 52 73 85

i: 4

j: 5 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 60


0 1 2 3 4 5 6
20 27 6 41 52 73 85

i: 4

j: 5 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 61


0 1 2 3 4 5 6
20 27 6 41 52 73 85

i: 4

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 62


0 1 2 3 4 5 6
20 27 6 41 52 73 85

i: 4

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 63


0 1 2 3 4 5 6
20 27 6 41 52 73 85

j j+1

i: 4

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 64


0 1 2 3 4 5 6
20 27 6 41 52 73 85

i: 4

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 65


0 1 2 3 4 5 6
20 27 6 41 52 73 85

i: 4

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 66


0 1 2 3 4 5 6
20 27 6 41 52 73 85

j j+1

i: 4

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 67


0 1 2 3 4 5 6
20 6 27 41 52 73 85

j j+1

i: 4

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 68


0 1 2 3 4 5 6
20 6 27 41 52 73 85

i: 4

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 69


0 1 2 3 4 5 6
20 6 27 41 52 73 85

i: 4

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 70


0 1 2 3 4 5 6
20 6 27 41 52 73 85

j j+1

i: 4

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 71


0 1 2 3 4 5 6
20 6 27 41 52 73 85

i: 4

j: 3 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 72


0 1 2 3 4 5 6
20 6 27 41 52 73 85

i: 4

j: 3 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 73


0 1 2 3 4 5 6
20 6 27 41 52 73 85

j j+1

i: 4

j: 3 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 74


0 1 2 3 4 5 6
20 6 27 41 52 73 85

i: 4

j: 4 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 75


0 1 2 3 4 5 6
20 6 27 41 52 73 85

i: 4

j: 4 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 76


0 1 2 3 4 5 6
20 6 27 41 52 73 85

i: 3

j: 4 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 77


0 1 2 3 4 5 6
20 6 27 41 52 73 85

i: 3

j: 4 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 78


0 1 2 3 4 5 6
20 6 27 41 52 73 85

i: 3

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 79


0 1 2 3 4 5 6
20 6 27 41 52 73 85

i: 3

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 80


0 1 2 3 4 5 6
20 6 27 41 52 73 85

j j+1

i: 3

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 81


0 1 2 3 4 5 6
6 20 27 41 52 73 85

j j+1

i: 3

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 82


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 3

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 83


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 3

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 84


0 1 2 3 4 5 6
6 20 27 41 52 73 85

j j+1

i: 3

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 85


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 3

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 86


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 3

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 87


0 1 2 3 4 5 6
6 20 27 41 52 73 85

j j+1

i: 3

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 88


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 3

j: 3 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 89


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 3

j: 3 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 90


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 2

j: 3 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 91


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 2

j: 3 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 92


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 2

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 93


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 2

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 94


0 1 2 3 4 5 6
6 20 27 41 52 73 85

j j+1

i: 2

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 95


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 2

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 96


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 2

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 97


0 1 2 3 4 5 6
6 20 27 41 52 73 85

j j+1

i: 2

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 98


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 2

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 99


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 2

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 100


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 1

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 101


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 1

j: 2 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 102


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 1

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 103


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 1

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 104


0 1 2 3 4 5 6
6 20 27 41 52 73 85

j j+1

i: 1

j: 0 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 105


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 1

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 106


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 1

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 107


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 0

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 108


0 1 2 3 4 5 6
6 20 27 41 52 73 85

i: 0

j: 1 función: burbuja
recibe: arr[], ultind
regresa: nada
i = ultind
mientras i > 0
j=0
mientras j < i
¿arr[j] > arr[j + 1]?
Sí: intercambiar arr[j] ↔ arr[j + 1]

j=j+1
fin mientras

i=i–1
fin mientras

©® Dr. Alfredo Gutiérrez Hdez. 109


void intercambia(int *a, int *b) {
int aux;
aux = *a;
*a = *b;
*b = aux;
}

void burbuja (int *arr, int ultind) {


int i, j;
for (i = ultind; i > 0; i--)
for (j = 0; j < i; j++)
if (arr[j] > arr[j + 1])
intercambia (&arr[j], &arr[j + 1]);
}

©® Dr. Alfredo Gutiérrez Hdez. 110

También podría gustarte