A mi parecer tu duda está más orientada a una falta de aprendizaje sobre estructuras de datos, además de programación. Con todo respeto, te invito a que acudas a la biblioteca de tu facultad y consultes los libros. Consulta sobre estructuras de datos, y seguramente encuentres uno que se llama "Estructura de datos y algoritmos" de Aho y otros tantos autores que no recuerdo.
Es un excelente libro que va explicando justamente las estructuras de datos, partiendo de lo que es un arreglo, array o vector.
No tiene demasiada ciencia tampoco. Es simplemente una porción de memoria continua que permite mediante un único identificador y un índice acceder a una lista de elementos del mismo tipo. De modo que hacer algo como:
Vector[1] = 45
Le estamos indicando que en la posición 1 del vector se almacene el número 45. Para leer el valor, es inverso:
variable = Vector[5]
Pila no es más que una especialización del concepto de lista. Básicamente la idea de este TAD (Tipo Abstracto de Datos) es que los items se recorran y se apilen como si fuera justamente una pila de platos sucios. Una operación Push() pone un item encima del otro, mientras que una operación Pop() va desapilando. Se conoce a la Pila también por su seudónimo FILO: First In, Last Out. O "Primero en Entrar, Último en Salir". Fíjate lo que sucede con los trastes cuando los lavas y los guardas al secarlos:
1) Pila vacia. P = ()
2) Tomas el 1er plato, lo lavas y pones a secar. Pila = (1)
3) Tomas el 2do plato, lo lavas y pones a secar. Pila = (2,1)
3) Tomas el 3er plato, .... Pila = (3,2,1)
Al finalizar, tendrás tu n-ésimo plato (el último) por encima de todos. Estuvimos haciendo Push() todo el tiempo. Ahora vamos a hacer Pop().
1) Saco el n-ésimo elemento. Pila = (n-1, n-2, ..., 3, 2, 1)
2) Saco el n-1-ésimo elemento. Pila = (n-2, ..., 3, 2, 1)
Al final sacaremos el 1er elemento que hemos insertado. Como puede apreciarse es el orden inverso en que los hemos ingresado.
Allí termina Pila.
Ordenación por Burbuja es ya un tanto más largo de explicar. Pero para hacerlo breve, digamos que tienes una lista de elementos desordenados. Lo que hace burbuja es tomar a cada elemento e ir recorriéndolos (evaluando) si es menor/mayor (según como esté implementado... ascendente o descendente) con el resto. En caso de ser afirmativa la evaluación procede a intercambiarlos. Al final del ciclo tendrá al menor/mayor elemento. Vuelve a repetir el ciclo, pero esta vez desde el 2do elemento contra el resto... al final tendremos al 2do menor/mayor, y así hasta llegar al último elemento.
Se lo llama burbuja por su analogía en lo que sucede cuando uno agrega una bebida gaseosa... las burbujas más livianas suben a la superficie, las más pesadas bajan. El Algoritmo de Burbuja lo que hace es subir la más liviana y bajar las más pesadas a la vez (en cada comparación). Una a por vez. Al final de cada ciclo tendrás en la superficie a la burbuja más liviana. Luego buscará la 2da burbuja más liviana y la subirá y las más pesadas seguirán bajando.
¿Se va entendiendo la idea?
Un defecto del algoritmo de burbuja es que no es demasiado óptimo, no es el más rápido pero al menos es el más simple y elemental. Es con el que se inicia a muchos. Ya verás más adelante que hay otros más rápidos... muchísimo más rápidos.
Otro defecto de burbuja es que en caso de que ya estuvieran ordenados la lista, malgasta ciclos. Es posible mejorarlo, y de hecho así se le suele llamar: burbuja mejorado. Que lo que hace es disponer de una variable bolleana que se establece en verdadero en cuando se ha detectado ordenamiento. De este modo el algoritmo no requiere de ciclos innecesarios.
Aquí tienes un artículo que lo explica mejor que yo.
Sugiero que pierdas el miedo a tu profesor y le digas que no entiendes. Habla con él y dile que te cuesta la materia. Se supone que el profesor no está únicamente para dar clase sino en asesorar a los estudiantes. Y por favor, ve a los libros, prioriza el material bibliográfico que haya dado tu profesor en el programa. De ser necesario, ¡ve a un profesor particular!
Saludos,