#include <iostream>
#include <ncurses.h>
#include <stdlib.h>
#include <stdio.h>


using namespace std;

void Burbuja(int A[],int);
void Llenar_Array(int A[],int);
void Muestra_Array(int A[],int);

int main() {
        
		initscr();		       
		
		if (has_colors()) {			
               start_color();			        		   
			   init_pair(1,COLOR_WHITE,COLOR_BLUE);
			   init_pair(2,COLOR_WHITE,COLOR_RED);
              }
			  
		int N;	
				
		bkgd(COLOR_PAIR(1));                                   //Fondo Azul
		
		
		
		
		mvprintw(1,2,"Introdusca el tamaño del Arreglo A: ");
		          scanw("%d",&N);		
		int *A=(int *)malloc(sizeof(int)*N);                   //Reservación de Memoria
 		for (int i=0; i<N; i++){A[i]=NULL;}                    //Inicialización del Array	
		
		Llenar_Array(A,N);
		std::cout<<"\n\n";                                     //2 Salto de lineas 
		Burbuja(A,N);
		
		
		attron(COLOR_PAIR(2) | A_BLINK | A_BOLD | A_UNDERLINE);
		printw("Se ordeno el arreglo por el metodo de ordenamiento BURBUJA");		
		Muestra_Array(A,N);				
		       std::cout<<"\n\n";                             //2 Salto de lineas 
		beep();
			refresh();
			getch();
			endwin();
		
		return 0;
}

 
void Llenar_Array(int A[],int N)
{		  long int Elemento;          
          for(int i=0; i<N; i++) 		                      //Llenado del Array
                 		     {                           
         		  			  mvprintw(3+i,2,"Enter Elemento [%i] :",i);
							             scanw("%ld",&Elemento);							  
                 			  A[i]=Elemento;							  
                          }				 
}

void Muestra_Array(int A[], int N)
{
	for (int i=0; i<N; i++){std::cout<<A[i]<<"   ";}           //Muestra del Array
}

void Burbuja(int A[],int N)
{
            int Tem=0;			
                for (int P=0; P<N; P++)
                    {
                     for (int i=0; i<N-1; i++)
                         {
      		              if(A[i]>A[i+1])
        			             {
         		              Tem=A[i];
         		              A[i]=A[i+1];
         		              A[i+1]=Tem;
                            }
                         }
                    }
}
