La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

1 Ordenando. 2 Sorting Input Una secuencia de numeros a 1, a 2, a 3, …, a n Output Una permutación (reorden) a’ 1, a’ 2, a’ 3, …, a’ n de la input, tal.

Presentaciones similares


Presentación del tema: "1 Ordenando. 2 Sorting Input Una secuencia de numeros a 1, a 2, a 3, …, a n Output Una permutación (reorden) a’ 1, a’ 2, a’ 3, …, a’ n de la input, tal."— Transcripción de la presentación:

1 1 Ordenando

2 2 Sorting Input Una secuencia de numeros a 1, a 2, a 3, …, a n Output Una permutación (reorden) a’ 1, a’ 2, a’ 3, …, a’ n de la input, tal que a’ 1 < a’ 2 < a’ 3 < …< a’ n Ejemplo Input: 8 5 2 3 9 6 1 Output: 1 2 3 5 6 8 9

3 3 Selection Sort n-1 fases, desde 1 hasta n-1 En la fase p, hallamos el p’esimo, nº más pequeño y lo ponemos en la posición p. O(n 2 ), considerando, O(n) fases, y donde cada fase necesita O(n) para hallar el p’esimo nº más pequeño. 752913152973 Fase 1 125973 Fase2 123975 Fase 3 123579 Fase 4 123579 Fase 5

4 4 Bubble Sort n-1 fases, de 1 hasta n-1 En la fase p, escanea la lista de izq. a der. Si el nº de la posición actual es más grande que la siguiente los intercambia. 752913572913 posicion 1 527913 posicion 2 527913 posicion 3 527193 posicion 4 527139 posicion 5

5 5 fase 2 527139 257139 257139 251739 251379 251379 215379 213579 fase 3 123579 123579 fase 4 123579 fase 5 En la fase p, el p’ésimo elemento más grande deberá estar en la posición correcta. O(n 2 )

6 6 Insertion sort n-1 fases, de 2 hasta n 752319 257319 antes fase 4 235719 Despues fase 4

7 7 752319 572319 fase 2 257319 235719 235719 235719 Despues fase 6 fase 3 fase 4 fase 5 fase 6 752319 Después de fase p, elementos en posiciones 1 hasta la p-1 están ordenados. O(n 2 )

8 8 Inversion Bubble Sort, Insertion Sort, y Selection sort usan Inversiones, es decir, en una secuencia a(1), a(2), …, a(n) con algun orden (i,j) tal que i a(j) Ejemplo: 24, 35, 12, 30 (1,3), (2,3), (2,4) Cuál es el nº de inversiones en promedio?

9 9 Inversion Ejemplo

10 10 Heapsort Algoritmos involucrados Buildheap: O(n) n -DeleteMins: n -O(log n) O(n log n) worst-case running time

11 11 15 4730 24 2833 11152447302833 15 30 4733 24 28 11 153024473328 1115 24 30 4733 28 2430284733 111524 28 30 47 33 28303347

12 12 11 15 4730 24 2833 11152447302833 24 30 4733 28 30 47 33 15 30 4733 24 28 15302447332811 2430284733151128303347241511 Para ordenar en orden creciente?

13 13 Mergesort Mergesort(A:array de integers) { msort(A,0,length[A]-1); } msort(A,p,r) { If (p == r) return; q = floor((p+r)/2); msort(A,p,q); msort(A,q+1,r); merge(A,p,q,r); }

14 14 8 3 4 1 6 5 2 7 8 3 4 16 5 2 71 2 3 4 5 6 7 8 1 3 4 82 5 6 7 8 34 1 8341 3 81 4 65 6 52 7 27 5 62 7 Mergesort T(1) = O(1) T(n) = O(1)+2T(n/2)+O(n) T(n) = O(n log n) T(n/2)O(1) O(n) T(n/2)

15 15 Analisis de Mergesort

16 16 Mergesort O(n log n) worst-case running time Divide-and-conquer requiere memoria adicional

17 17 Quicksort Divide-and-conquer O(n log n) average running time O(n 2 ) worst-case running time Es el más rápido en la practica.

18 18 3019242841341543201236 1215192024283034364143 1924281520124134433630 121519202428 151219242820 1215202428 34364143 3436 12152024283436 T(i)O(n) O(1) T(n-i) 34364143

19 19 Quicksort Algorithm Suponga una entrada de elementos en una lista S. Si el # de elementos en S es 0 o 1, return S. Pincha un elemento p (el pivote) en S. Particion S-{p} en S1 = {x  S | x  p } y S2 = {x  S | x  p } Ordena S1 y S2 recursivamente Return ( S1, p, S2 )

20 20 Escoger Pivote El primer elemento Mala opción Un elemento al azar Median Median de la izq., der y elementos del centro.

21 21 Particion 301924284134154320123019242841341543201230192428413415432012301924284134154320123019242841341543201230192428413415432012

22 22 Mejor caso- Best Case

23 23 Peor caso- Worst Case 1234567891011 1234567891011 234567891011 34567891011 4567891011

24 24 Analisis del Worst-Case

25 25 Aplicacion de Quicksort: Selecting k-th smallest element quickselect: 1.If |S|=1 then k=1 and return the element in S as the answer. 2.Pick a pivot element,v  S. 3.Partition S-{v} into S 1 and S 2, as was done with quicksort 4.If k |S 1 | the kth smallest element must be in S 1. In this case return quickselect(S 1,k). If k=1+|S 1 |, then the pivot is the kth smallest element and we can return it as the answer. Otherwise, the kth smallest element is in S 2, and it is the (k-|S 1 |-1)st smallest in S 2. We make a recursive call and return quickselect(S 2, k-|S 1 |-1). Complexity: O(n) in average Application: Finding Median

26 26 adivinando Player 1: Pincha un nº x entre 1 y 10. Player 2: Trata de determinar x haciendo la pregunta: Es x  y ? 1,2,3,4,5,6,7,8,9,10 1,2,3,4,5 55 6,7,8,9,10 55 8 77 6,7,8 88 5 44 1,2,3 41,23 21 6,7 76 9,10 109 66 66 77 99 99 88 11 11 22 22 44 33 4,5 33

27 27 1,2,3,4,5,6 1,2,3 1,23 21 11 11 22 22 33 33 4,5,6 4,56 54 44 44 55 55 1,2,3,4,5,6 1,2,3,4 1,26 21 11 11 22 55 44 44 5,6 3,45 43 33 33 55 22 1,2,3,4,5,6 3,4,5,62 1 22 11 11 2,3,4,5,6 4 3 33 33 22 4,5,6 6 55 5,6 5 55 44 44

28 28 a<b<c a<c<b b<a<c b<c<a c<a<b c<b<a b<a a<b a<b<c a<c<b b<a<c b<c<a c<a<bc<b<a c<aa<c a<b<c a<c<b c<a<b a<b<ca<c<b c<bb<c b<a<c b<c<a c<b<a c<b b<c c<aa<c b<a<cb<c<a Decision Trees

29 29 Un árbol binario de profundidad d posee a lo más 2 d hojas. Un árbol binario con L hojas tiene profundidad a lo menos  log L 

30 30 Bucket Sort 1 3 6 8 12 n=5 O(n+b) 3 112 1 2 3 4 5 6 7 8 9 10 11 12 b=12 1 11 1, 3, 3, 6, 8, 12

31 31 Radix Sort 000 001 510 343 064124 216 027 008 000001064027008 000 001 510 343 064 124 216 027 008 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 000001 510 343 064 124 216 027 008 1 2 3 4 5 6 7 8 9 0 510 343 124 216 000001510343064124216027008 n =9 b =10 p =3 O(p(n+b))


Descargar ppt "1 Ordenando. 2 Sorting Input Una secuencia de numeros a 1, a 2, a 3, …, a n Output Una permutación (reorden) a’ 1, a’ 2, a’ 3, …, a’ n de la input, tal."

Presentaciones similares


Anuncios Google