Exemplo 2: Par de Pontos mais Próximos
1
2
3
4
5
6
7
. PAR_MAIS_PROX(x, y, n)
. para i ← 1 até n faça
. px[i] ← i
. py[i] ← i
. MERGE-SORT(px, n, x)
. MERGE-SORT(py, n, y)
. retorne PAR_MAIS_PROX_REC(x, y, px, py, n)
1
2
3
4
. PAR_MAIS_PROX_REC(x, y, px, py, n)
. se n <= 3 então
. retorna PAR_MAIS_PROX_FORCA_BRUTA(x, y, n)
. senão
ꢛꢜꢝ , ꢛꢞꢝ , ꢂ , ꢛꢜꢟ , ꢛꢞꢟ , ꢂ ← DIVIDE(x, y, px, py, n)
ꢝ
ꢟ
5.
ꢝ
6
. ie, je ← PAR_MAIS_PROX_REC(x, y, ꢛꢜꢝ , ꢛꢞꢝ , ꢂ )
ꢟ
7
. id, jd ← PAR_MAIS_PROX_REC(x, y, ꢛꢜꢟ , ꢛꢞꢟ , ꢂ )
8
. retorna COMBINA(x, y, ie, je, id, jd, px, py, n)