12
Ordenación rápida Algoritmos y Estructuras de Datos II Ordenación rápida 16 de marzo de 2015 Ordenación rápida Algoritmos y Estructuras de Datos II

Ordenacion Rapida Filminas

Embed Size (px)

DESCRIPTION

La legitimidad de las monjas con ordenación completa ( bhikkhuni / bhiksuni ) se ha convertido en un tema importante de debate en los últimos años. Textos transmiten en cada registro tradición budista que Gautama Buda creado una orden de monjas con ordenación completa, pero la tradición ha desaparecido en algunas tradiciones budistas como el budismo Theravada, sin dejar de ser fuerte en otros como el budismo chino ( Dharmaguptaka linaje). En el linaje tibetano , que sigue el linaje Mulasarvastivadin, el linaje de monjas con ordenación completa no fue traído a Tíbet por los indios Vinaya maestros, por lo tanto, no hay rito de la ordenación de monjas completos. Sin embargo th 14to Dalai Lama se ha esforzado durante muchos años para mejorar esta situación. [ 2 ] En 2005 se pidió a las monjas con ordenación completa en el linaje Dharmaguptaka, especialmente Jampa Tsedroen , para formar un comité para trabajar por la aceptación de la bhiksuni linaje dentro del tibetano tradición, [ 2 ] y donado € 50.000 para futuras investigaciones. Los "1er Congreso Internacional sobre el papel de las mujeres budistas en el Sangha: Bhikshuni Vinaya y Ordenación Linajes" se celebró en la Universidad de Hamburgo del 18 al 20 julio, 2007, en colaboración con el Instituto de Asia y África de la Universidad. Aunque el tono general era que la ordenación completa fue vencida, el Dalai Lama presentó un documento preliminar elaborado [ 3 ] diciendo que se necesitaba más tiempo para tomar una decisión, anulando así las intenciones del Congreso.

Citation preview

Page 1: Ordenacion Rapida Filminas

Ordenación rápida

Algoritmos y Estructuras de Datos II

Ordenación rápida

16 de marzo de 2015

Ordenación rápida Algoritmos y Estructuras de Datos II

Page 2: Ordenacion Rapida Filminas

Ordenación rápida

Contenidos

1 Ordenación rápidaEl algoritmoEjemploAnálisis

Ordenación rápida Algoritmos y Estructuras de Datos II

Page 3: Ordenacion Rapida Filminas

Ordenación rápidaEl algoritmoEjemploAnálisis

Ayuda de Juan

La idea original de Juan fueQue cada uno ordenara la mitad.Que luego se intercalen las dos mitades ya ordenadas.Este proceso, iterado, dio lugar a la ordenación porintercalación.

otra idea parecida puede ser:Separar en dos mitades: por un lado los que irían alprincipio y por el otro los que irían al final.Que cada uno ordene su mitad.Que finalmente se junten las dos mitades ordenadas.Esta idea da lugar al algoritmo conocido por quicksort uordenación rápida.

Ordenación rápida Algoritmos y Estructuras de Datos II

Page 4: Ordenacion Rapida Filminas

Ordenación rápidaEl algoritmoEjemploAnálisis

Ordenación rápida en Haskell

qsort :: [T]→ [T]qsort [] = []qsort [a] = [a]qsort (a:as) = qsort xs ++ [a] ++ qsort ys

where (xs,ys) = (filter (<=a) as, filter (>a) as)

Ordenación rápida Algoritmos y Estructuras de Datos II

Page 5: Ordenacion Rapida Filminas

Ordenación rápidaEl algoritmoEjemploAnálisis

Ordenación rápida en pseudocódigo

{Pre: 0 ≤ der ≤ n ∧ 1 ≤ izq ≤ n+1 ∧ izq-1 ≤ der ∧ a = A}proc quick_sort_rec (in/out a: array[1..n] of T, in izq,der: nat)

var piv: natif der > izq→ pivot(a,izq,der,piv)

izq ≤ piv ≤ derelementos en a[izq,piv-1] < ó = que a[piv]elementos en a[piv+1,der] > a[piv]}

quick_sort_rec(a,izq,piv-1)quick_sort_rec(a,piv+1,der)

fiend proc{Post: a permutación de A ∧ a[izq,der] permutación ordenada de A[izq,der]}

Ordenación rápida Algoritmos y Estructuras de Datos II

Page 6: Ordenacion Rapida Filminas

Ordenación rápidaEl algoritmoEjemploAnálisis

Algoritmo principal

proc quick_sort (in/out a: array[1..n] of T)quick_sort_rec(a,1,n)

end proc

Ordenación rápida Algoritmos y Estructuras de Datos II

Page 7: Ordenacion Rapida Filminas

Ordenación rápidaEl algoritmoEjemploAnálisis

Procedimiento pivotproc pivot (in/out a: array[1..n] of T, in izq, der: nat, out piv: nat)

var i,j: natpiv:= izqi:= izq+1j:= derdo i ≤ j→ if a[i] ≤ a[piv]→ i:= i+1

a[j] > a[piv]→ j:= j-1a[i] > a[piv] ∧ a[j] ≤ a[piv]→ swap(a,i,j)

i:= i+1j:= j-1

fiodswap(a,piv,j) {dejando el pivote en una posición más central}piv:= j {señalando la nueva posición del pivote}

end procOrdenación rápida Algoritmos y Estructuras de Datos II

Page 8: Ordenacion Rapida Filminas

Ordenación rápidaEl algoritmoEjemploAnálisis

Invariante del procedimiento pivot

a

� -� -� -pivote

menores o iguales

que el pivote

sin

clasificar

mayores

que el pivote

izq

piv

izq+1 i -1 i j j +1 der

al finalizar queda así:

a

� -� -pivote

menores o iguales

que el pivote

mayores

que el pivote

izq

piv

izq+1 ij der

y se hace un swap entre las posiciones izq y j.

Ordenación rápida Algoritmos y Estructuras de Datos II

Page 9: Ordenacion Rapida Filminas

Ordenación rápidaEl algoritmoEjemploAnálisis

Pre, post e invariante

{Pre: 1 ≤ izq < der ≤ n ∧ a = A}{Post: a[1,izq) = A[1,izq) ∧ a(der,n] = A(der,n]∧ a[izq,der] permutación de A[izq,der]∧ izq ≤ piv ≤ der∧ los elementos de a[izq,piv] son ≤ que a[piv]∧ los elementos de a(piv,der] son > que a[piv]}{Inv: izq = piv < i ≤ j+1 ≤ der+1∧ todos los elementos en a[izq,i) son ≤ que a[piv]∧ todos los elementos en a(j,der] son > que a[piv]}

Ordenación rápida Algoritmos y Estructuras de Datos II

Page 10: Ordenacion Rapida Filminas

Ordenación rápidaEl algoritmoEjemploAnálisis

Ejemplo

3 9 1 2 7 3 5

3 9 1 2 7 3 5

3 3 1 2 7 9 5

2 3 1 3 7 9 5

2 3 1 3 7 9 5

2 1 3 3 7 9 5

1 2 3 3 7 9 5

1 2 3 3 7 9 5

1 2 3 3 7 9 5

1 2 3 3 7 9 5

1 2 3 3 7 5 9

1 2 3 3 5 7 9

1 2 3 3 5 7 9

1 2 3 3 5 7 9

Ordenación rápida Algoritmos y Estructuras de Datos II

Page 11: Ordenacion Rapida Filminas

Ordenación rápidaEl algoritmoEjemploAnálisis

Ejemplo de pivot

3 9 1 2 7 3 5

3 9 1 2 7 3 5

3 3 1 2 7 9 5

3 3 1 2 7 9 5

3 3 1 2 7 9 5

3 3 1 2 7 9 5

2 3 1 3 7 9 5

Ordenación rápida Algoritmos y Estructuras de Datos II

Page 12: Ordenacion Rapida Filminas

Ordenación rápidaEl algoritmoEjemploAnálisis

Análisis del algoritmo

Queda para la clase que viene.

Ordenación rápida Algoritmos y Estructuras de Datos II