Advertisement
santiagol26

HEAPSORT SUCURSAL BANCARIA LO ENVIE

Oct 22nd, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.94 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class HeapSort {    
  4.     private static int N;
  5.     public static void sort(double arr[]){      
  6.         heapify(arr);        
  7.         for (int i = N; i > 0; i--){
  8.             swap(arr,0, i);
  9.             N = N-1;
  10.             maxheap(arr, 0);
  11.         }
  12.     }      
  13.     public static void heapify(double arr[]){
  14.         N = arr.length-1;
  15.         for (int i = N/2; i >= 0; i--)
  16.             maxheap(arr, i);        
  17.     }      
  18.     public static void maxheap(double arr[], int i){
  19.         int left = 2*i ;
  20.         int right = 2*i + 1;
  21.         int max = i;
  22.         if (left <= N && arr[left] > arr[i])
  23.             max = left;
  24.         if (right <= N && arr[right] > arr[max])        
  25.             max = right;
  26.  
  27.         if (max != i){
  28.             swap(arr, i, max);
  29.             maxheap(arr, max);
  30.         }
  31.     }    
  32.     public static void swap(double arr[], int i, int j){
  33.         double tmp = arr[i];
  34.         arr[i] = arr[j];
  35.         arr[j] = tmp;
  36.     }    
  37.     public static void main(String[] args){
  38.         Scanner scan = new Scanner( System.in );        
  39.         int n = scan.nextInt();    
  40.         double aux[] = new double [n];
  41.    
  42.         for(int k = 0; k < n; k++){
  43.         aux[k] = Double.parseDouble(scan.next());
  44.         }                  
  45.         /* cuantas operaciones bancarias desea realiza */        
  46.         int operaciones=scan.nextInt();
  47.         int cliente1;
  48.         int cliente2;
  49.         double monto;
  50.         for (int t= 0;t<operaciones;t++){
  51.             String operacion=scan.next();
  52.             if (operacion.equals("consultar")){
  53.               double sumaT=0;
  54.               cliente1=scan.nextInt();
  55.               cliente2=scan.nextInt();
  56.               int count=cliente1-1;
  57.               double tempor[]=new double [(cliente2-cliente1)+1];
  58.               for(int i=0;i<tempor.length;i++,count++){
  59.               tempor[i]=aux[count];
  60.               sumaT=sumaT+tempor[i];
  61.               }
  62.               for(int i=0;i<tempor.length;i++){
  63.               System.out.print("(");
  64.               System.out.print(tempor[i]+"");
  65.               System.out.print(")");
  66.               }
  67.               System.out.println();
  68.               sumaT=sumaT/tempor.length;
  69.               sumaT=(double)Math.round(sumaT*10)/10;            
  70.               sort(tempor);
  71.               System.out.println(tempor[0]+" "+tempor[tempor.length-1] +" "+ String.format("%.1f", sumaT));
  72.               continue;
  73.             }          
  74.             else if(operacion.equals("retirar")){
  75.             cliente1=scan.nextInt();
  76.             monto=Double.parseDouble(scan.next());
  77.             aux[cliente1-1] = aux[cliente1-1]-monto;
  78.             continue;
  79.             }
  80.             else if(operacion.equals("depositar")){
  81.             cliente1=scan.nextInt();
  82.             monto=Double.parseDouble(scan.next());
  83.             aux[cliente1-1] = aux[cliente1-1]+ monto;
  84.             continue;
  85.             }
  86.             else{ continue;}
  87.         }
  88.         scan.close();
  89.     }    
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement