Está en la página 1de 120

SELECCIÓN

©® Dr. Alfredo Gutiérrez 1


54 45 75 9 44 72 77

©® Dr. Alfredo Gutiérrez 2


54 45 75 9 44 72 77

©® Dr. Alfredo Gutiérrez 3


9 45 75 54 44 72 77

©® Dr. Alfredo Gutiérrez 4


9 44 75 54 45 72 77

©® Dr. Alfredo Gutiérrez 5


9 44 45 54 75 72 77

©® Dr. Alfredo Gutiérrez 6


9 44 45 54 75 72 77

©® Dr. Alfredo Gutiérrez 7


9 44 45 54 72 75 77

©® Dr. Alfredo Gutiérrez 8


9 44 45 54 72 75 77

©® Dr. Alfredo Gutiérrez 9


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
recibe: arr[], ultind
menor: regresa: nada
i=0
i: mientras i < ultind
menor = i
j=i+1
j: mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 10


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 11


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 12


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
0 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 13


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
0 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 1 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 14


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
0 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 1 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 15


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
0 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 1 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 16


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 1 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 17


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 2 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 18


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 2 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 19


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 2 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 20


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 3 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 21


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 3 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 22


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 3 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 23


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 3 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 24


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 4 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 25


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 4 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 26


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 4 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 27


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 28


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 29


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 30


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 31


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 32


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 33


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 34


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 35


0 1 2 3 4 5 6
54 45 75 9 44 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 36


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 0 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 37


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 38


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 39


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 40


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 2 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 41


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 2 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 42


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 2 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 43


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 3 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 44


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 3 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 45


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 3 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 46


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 4 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 47


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 4 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 48


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 4 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 49


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 4 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 50


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 51


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 52


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 53


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
1 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 54


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 55


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 56


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 57


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 58


0 1 2 3 4 5 6
9 45 75 54 44 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 1 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 59


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 60


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 61


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 62


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
2 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 63


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
2 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 3 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 64


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
2 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 3 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 65


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
2 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 3 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 66


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 3 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 67


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 4 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 68


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 4 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 69


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 4 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 70


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 4 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 71


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 72


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 73


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 74


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 75


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 76


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 77


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 78


0 1 2 3 4 5 6
9 44 75 54 45 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 79


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 2 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 80


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 3 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 81


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 3 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 82


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 3 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 83


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 3 mientras i < ultind
menor = i
j=i+1
j: 4 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 84


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 3 mientras i < ultind
menor = i
j=i+1
j: 4 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 85


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 3 mientras i < ultind
menor = i
j=i+1
j: 4 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 86


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 3 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 87


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 3 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 88


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 3 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 89


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 3 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 90


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 3 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 91


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 3 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 92


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 3 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 93


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 3 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 94


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 3 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 95


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 4 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 96


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
3 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 4 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 97


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 4 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 98


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 4 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 99


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 4 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 100


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
4 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 4 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 101


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 4 mientras i < ultind
menor = i
j=i+1
j: 5 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 102


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 4 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 103


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 4 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 104


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 4 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 105


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 4 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 106


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 4 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 107


0 1 2 3 4 5 6
9 44 45 54 75 72 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 4 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 108


0 1 2 3 4 5 6
9 44 45 54 72 75 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 4 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 109


0 1 2 3 4 5 6
9 44 45 54 72 75 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 5 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 110


0 1 2 3 4 5 6
9 44 45 54 72 75 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 5 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 111


0 1 2 3 4 5 6
9 44 45 54 72 75 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 5 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 112


0 1 2 3 4 5 6
9 44 45 54 72 75 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 5 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 113


0 1 2 3 4 5 6
9 44 45 54 72 75 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 5 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 114


0 1 2 3 4 5 6
9 44 45 54 72 75 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 5 mientras i < ultind
menor = i
j=i+1
j: 6 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 115


0 1 2 3 4 5 6
9 44 45 54 72 75 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 5 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 116


0 1 2 3 4 5 6
9 44 45 54 72 75 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 5 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 117


0 1 2 3 4 5 6
9 44 45 54 72 75 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 5 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 118


0 1 2 3 4 5 6
9 44 45 54 72 75 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 6 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 119


0 1 2 3 4 5 6
9 44 45 54 72 75 77

función: selección
5 recibe: arr[], ultind
menor: regresa: nada
i=0
i: 6 mientras i < ultind
menor = i
j=i+1
j: 7 mientras j ≤ ultind
¿arr[j] < arr[menor]?
Sí: menor = j
j=j+1
fin mientras
¿menor ≠ i?
Sí: intercambiar arr[i] ↔ arr[menor]
i=i+1
fin mientras

©® Dr. Alfredo Gutiérrez 120

También podría gustarte