Array Sorting Search Stack Queues Set 3 Non-Linear Data Structures Priority Queues Dictionaries Balanced Binary Search Tree 4 Preguntas? 5 Desaf´ ıo Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 5 / 37
y dif´ ıcil • Diferencia entre un “Accepted” y un “Wrong Answer” • No hay una estructura de datos que se pueda aplicar a todos los problemas • Disclaimer: estoy asumiendo un conocimiento b´ asico de estructuras de datos • Disclaimer2: Todos los ejemplos estan escritos en Java Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 8 / 37
y dif´ ıcil • Diferencia entre un “Accepted” y un “Wrong Answer” • No hay una estructura de datos que se pueda aplicar a todos los problemas • Disclaimer: estoy asumiendo un conocimiento b´ asico de estructuras de datos • Disclaimer2: Todos los ejemplos estan escritos en Java Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 8 / 37
y dif´ ıcil • Diferencia entre un “Accepted” y un “Wrong Answer” • No hay una estructura de datos que se pueda aplicar a todos los problemas • Disclaimer: estoy asumiendo un conocimiento b´ asico de estructuras de datos • Disclaimer2: Todos los ejemplos estan escritos en Java Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 8 / 37
y dif´ ıcil • Diferencia entre un “Accepted” y un “Wrong Answer” • No hay una estructura de datos que se pueda aplicar a todos los problemas • Disclaimer: estoy asumiendo un conocimiento b´ asico de estructuras de datos • Disclaimer2: Todos los ejemplos estan escritos en Java Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 8 / 37
y dif´ ıcil • Diferencia entre un “Accepted” y un “Wrong Answer” • No hay una estructura de datos que se pueda aplicar a todos los problemas • Disclaimer: estoy asumiendo un conocimiento b´ asico de estructuras de datos • Disclaimer2: Todos los ejemplos estan escritos en Java Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 8 / 37
pr´ actico a las estructuras de datos usadas en el torneo de programaci´ on • Dar una gu´ ıa de que tipo de estructura de datos usar para cada problema Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 10 / 37
pr´ actico a las estructuras de datos usadas en el torneo de programaci´ on • Dar una gu´ ıa de que tipo de estructura de datos usar para cada problema Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 10 / 37
pr´ actico a las estructuras de datos usadas en el torneo de programaci´ on • Dar una gu´ ıa de que tipo de estructura de datos usar para cada problema Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 10 / 37
usando sus indices • El tama˜ no M´ aximo es mencionado en el problema • Dimensiones de 1-D, 2-D, 3-D y rar´ a vez se usa 4-D • Operaciones comunes: • Acceso • Ordernar • B´ usqueda Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 13 / 37
usando sus indices • El tama˜ no M´ aximo es mencionado en el problema • Dimensiones de 1-D, 2-D, 3-D y rar´ a vez se usa 4-D • Operaciones comunes: • Acceso • Ordernar • B´ usqueda Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 13 / 37
usando sus indices • El tama˜ no M´ aximo es mencionado en el problema • Dimensiones de 1-D, 2-D, 3-D y rar´ a vez se usa 4-D • Operaciones comunes: • Acceso • Ordernar • B´ usqueda Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 13 / 37
usando sus indices • El tama˜ no M´ aximo es mencionado en el problema • Dimensiones de 1-D, 2-D, 3-D y rar´ a vez se usa 4-D • Operaciones comunes: • Acceso • Ordernar • B´ usqueda Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 13 / 37
usando sus indices • El tama˜ no M´ aximo es mencionado en el problema • Dimensiones de 1-D, 2-D, 3-D y rar´ a vez se usa 4-D • Operaciones comunes: • Acceso • Ordernar • B´ usqueda Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 13 / 37
usando sus indices • El tama˜ no M´ aximo es mencionado en el problema • Dimensiones de 1-D, 2-D, 3-D y rar´ a vez se usa 4-D • Operaciones comunes: • Acceso • Ordernar • B´ usqueda Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 13 / 37
usando sus indices • El tama˜ no M´ aximo es mencionado en el problema • Dimensiones de 1-D, 2-D, 3-D y rar´ a vez se usa 4-D • Operaciones comunes: • Acceso • Ordernar • B´ usqueda Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 13 / 37
que evitarlos • O(n log n) Merge/Head/random Quick sort. • Librer´ ıas lo hacen por nosotros, s´ olo especificamos la funci´ on de comparaci´ on • O(n) Special purpose Algorithms: Counting sort, Radix sort, Bucket Sort • Espec´ ıficos al problemas Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 15 / 37
que evitarlos • O(n log n) Merge/Head/random Quick sort. • Librer´ ıas lo hacen por nosotros, s´ olo especificamos la funci´ on de comparaci´ on • O(n) Special purpose Algorithms: Counting sort, Radix sort, Bucket Sort • Espec´ ıficos al problemas Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 15 / 37
que evitarlos • O(n log n) Merge/Head/random Quick sort. • Librer´ ıas lo hacen por nosotros, s´ olo especificamos la funci´ on de comparaci´ on • O(n) Special purpose Algorithms: Counting sort, Radix sort, Bucket Sort • Espec´ ıficos al problemas Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 15 / 37
que evitarlos • O(n log n) Merge/Head/random Quick sort. • Librer´ ıas lo hacen por nosotros, s´ olo especificamos la funci´ on de comparaci´ on • O(n) Special purpose Algorithms: Counting sort, Radix sort, Bucket Sort • Espec´ ıficos al problemas Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 15 / 37
que evitarlos • O(n log n) Merge/Head/random Quick sort. • Librer´ ıas lo hacen por nosotros, s´ olo especificamos la funci´ on de comparaci´ on • O(n) Special purpose Algorithms: Counting sort, Radix sort, Bucket Sort • Espec´ ıficos al problemas Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 15 / 37
que evitarlos • O(n log n) Merge/Head/random Quick sort. • Librer´ ıas lo hacen por nosotros, s´ olo especificamos la funci´ on de comparaci´ on • O(n) Special purpose Algorithms: Counting sort, Radix sort, Bucket Sort • Espec´ ıficos al problemas Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 15 / 37
Operaciones • push • pop • peek • empty • Problemas • Procesar estructuras anidadas - push on ( pop on ) • En llamadas recursivas • B´ usquedas en profundidad Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 22 / 37
Operaciones • push • pop • peek • empty • Problemas • Procesar estructuras anidadas - push on ( pop on ) • En llamadas recursivas • B´ usquedas en profundidad Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 22 / 37
Operaciones • push • pop • peek • empty • Problemas • Procesar estructuras anidadas - push on ( pop on ) • En llamadas recursivas • B´ usquedas en profundidad Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 22 / 37
Operaciones • push • pop • peek • empty • Problemas • Procesar estructuras anidadas - push on ( pop on ) • En llamadas recursivas • B´ usquedas en profundidad Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 22 / 37
Operaciones • push • pop • peek • empty • Problemas • Procesar estructuras anidadas - push on ( pop on ) • En llamadas recursivas • B´ usquedas en profundidad Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 22 / 37
Operaciones • push • pop • peek • empty • Problemas • Procesar estructuras anidadas - push on ( pop on ) • En llamadas recursivas • B´ usquedas en profundidad Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 22 / 37
Operaciones • push • pop • peek • empty • Problemas • Procesar estructuras anidadas - push on ( pop on ) • En llamadas recursivas • B´ usquedas en profundidad Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 22 / 37
Operaciones • push • pop • peek • empty • Problemas • Procesar estructuras anidadas - push on ( pop on ) • En llamadas recursivas • B´ usquedas en profundidad Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 22 / 37
Operaciones • push • pop • peek • empty • Problemas • Procesar estructuras anidadas - push on ( pop on ) • En llamadas recursivas • B´ usquedas en profundidad Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 22 / 37
Operaciones • push • pop • peek • empty • Problemas • Procesar estructuras anidadas - push on ( pop on ) • En llamadas recursivas • B´ usquedas en profundidad Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 22 / 37
Operaciones • push • pop • front • back • empty • Problemas • B´ usqueda por amplitud en grafos Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 24 / 37
Operaciones • push • pop • front • back • empty • Problemas • B´ usqueda por amplitud en grafos Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 24 / 37
Operaciones • push • pop • front • back • empty • Problemas • B´ usqueda por amplitud en grafos Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 24 / 37
Operaciones • push • pop • front • back • empty • Problemas • B´ usqueda por amplitud en grafos Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 24 / 37
Operaciones • push • pop • front • back • empty • Problemas • B´ usqueda por amplitud en grafos Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 24 / 37
Operaciones • push • pop • front • back • empty • Problemas • B´ usqueda por amplitud en grafos Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 24 / 37
Operaciones • push • pop • front • back • empty • Problemas • B´ usqueda por amplitud en grafos Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 24 / 37
Operaciones • push • pop • front • back • empty • Problemas • B´ usqueda por amplitud en grafos Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 24 / 37
Operaciones • push • pop • front • back • empty • Problemas • B´ usqueda por amplitud en grafos Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 24 / 37
Operaciones • add • contains(e) • intersection / retainAll • union / addAll Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 26 / 37
Operaciones • add • contains(e) • intersection / retainAll • union / addAll Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 26 / 37
Operaciones • add • contains(e) • intersection / retainAll • union / addAll Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 26 / 37
Operaciones • add • contains(e) • intersection / retainAll • union / addAll Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 26 / 37
Operaciones • add • contains(e) • intersection / retainAll • union / addAll Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 26 / 37
Operaciones • add • contains(e) • intersection / retainAll • union / addAll Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 26 / 37
estructura de ´ arbol • Operaciones • insert O(log n) • peek O(1) • Poll O(log n) • Problemas • Kruskal’s for Minimum Spanning Tree (MST) • Dijkstra’s for Single-Source Shortest Paths (SSSP) Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 29 / 37
estructura de ´ arbol • Operaciones • insert O(log n) • peek O(1) • Poll O(log n) • Problemas • Kruskal’s for Minimum Spanning Tree (MST) • Dijkstra’s for Single-Source Shortest Paths (SSSP) Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 29 / 37
estructura de ´ arbol • Operaciones • insert O(log n) • peek O(1) • Poll O(log n) • Problemas • Kruskal’s for Minimum Spanning Tree (MST) • Dijkstra’s for Single-Source Shortest Paths (SSSP) Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 29 / 37
estructura de ´ arbol • Operaciones • insert O(log n) • peek O(1) • Poll O(log n) • Problemas • Kruskal’s for Minimum Spanning Tree (MST) • Dijkstra’s for Single-Source Shortest Paths (SSSP) Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 29 / 37
estructura de ´ arbol • Operaciones • insert O(log n) • peek O(1) • Poll O(log n) • Problemas • Kruskal’s for Minimum Spanning Tree (MST) • Dijkstra’s for Single-Source Shortest Paths (SSSP) Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 29 / 37
estructura de ´ arbol • Operaciones • insert O(log n) • peek O(1) • Poll O(log n) • Problemas • Kruskal’s for Minimum Spanning Tree (MST) • Dijkstra’s for Single-Source Shortest Paths (SSSP) Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 29 / 37
estructura de ´ arbol • Operaciones • insert O(log n) • peek O(1) • Poll O(log n) • Problemas • Kruskal’s for Minimum Spanning Tree (MST) • Dijkstra’s for Single-Source Shortest Paths (SSSP) Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 29 / 37
estructura de ´ arbol • Operaciones • insert O(log n) • peek O(1) • Poll O(log n) • Problemas • Kruskal’s for Minimum Spanning Tree (MST) • Dijkstra’s for Single-Source Shortest Paths (SSSP) Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 29 / 37
• insert • delete • search/get • La preocupaci´ on principal es performance Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 31 / 37
• insert • delete • search/get • La preocupaci´ on principal es performance Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 31 / 37
• insert • delete • search/get • La preocupaci´ on principal es performance Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 31 / 37
• insert • delete • search/get • La preocupaci´ on principal es performance Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 31 / 37
• insert • delete • search/get • La preocupaci´ on principal es performance Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 31 / 37
• insert • delete • search/get • La preocupaci´ on principal es performance Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 31 / 37
una estructura de ´ arbol. • En cada sub ´ arbol con ra´ ız x cumple la siguiente propiedad, los items que est´ an al lado izquierdo son menor a x y los items a la derecha son mayor o igual que x • Organizar datos de esta forma nos permite acceder, ingresase y borrar objetos en O(log n) si es que el ´ arbol est´ a balanceado Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 33 / 37
una estructura de ´ arbol. • En cada sub ´ arbol con ra´ ız x cumple la siguiente propiedad, los items que est´ an al lado izquierdo son menor a x y los items a la derecha son mayor o igual que x • Organizar datos de esta forma nos permite acceder, ingresase y borrar objetos en O(log n) si es que el ´ arbol est´ a balanceado Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 33 / 37
una estructura de ´ arbol. • En cada sub ´ arbol con ra´ ız x cumple la siguiente propiedad, los items que est´ an al lado izquierdo son menor a x y los items a la derecha son mayor o igual que x • Organizar datos de esta forma nos permite acceder, ingresase y borrar objetos en O(log n) si es que el ´ arbol est´ a balanceado Francisco Rojas (Universidad de Talca) Estructuras de Datos y Librerias May 23, 2014 33 / 37