/** * Geracao de elementos de um array * @author Max do Val Machado * @version 3 08/2020 */ import java.util.*; class Geracao { protected int[] array; protected int n; /** * Construtor. */ public Geracao(){ array = new int[100]; n = array.length; } /** * Construtor. * @param int tamanho do array de numeros inteiros. */ public Geracao(int tamanho){ array = new int[tamanho]; n = array.length; } /** * Produz um array ordenado de modo crescente. */ public void crescente() { for (int i = 0; i < n; i++) { array[i] = i; } } /** * Produz um array ordenado de modo decrescente. */ public void decrescente() { for (int i = 0; i < n; i++) { array[i] = n - 1 - i; } } /** * Produz um array com numeros aleatorios. */ public void aleatorio() { Random rand = new Random(); crescente(); for (int i = 0; i < n; i++) { swap(i, Math.abs(rand.nextInt()) % n); } } /** * Efetua a leitura dos elementos via entrada padrao. */ public void entradaPadrao() { n = MyIO.readInt(); array = new int[n]; for (int i = 0; i < n; i++) { array[i] = MyIO.readInt(); } } /** * Recebe um Efetua a leitura dos elementos via entrada padrao. */ public void entrada(int[] vet){ n = vet.length; array = new int[n]; for(int i = 0; i < n; i++){ array[i] = vet[i]; } } /** * Mostra os k primeiros elementos do array. * @param int k indica a quantidade de elementos do array a serem mostrados. */ public void mostrar(int k) { System.out.print("["); for (int i = 0; i < k; i++) { System.out.print(" ("+i+")" + array[i]); } System.out.println("]"); } /** * Mostra os elementos do array. */ public void mostrar() { System.out.print("["); for (int i = 0; i < n; i++) { System.out.print(" ("+i+")" + array[i]); } System.out.println("]"); } /** * Troca o conteudo de duas posicoes do array * @param i int primeira posicao * @param j int segunda posicao */ public void swap(int i, int j) { int temp = array[i]; array[i] = array[j]; array[j] = temp; } /** * Retorna o timestamp atual * @return timestamp atual */ public long now(){ return new Date().getTime(); } /** * Retorna verdadeiro/falso indicando se o array esta ordenado * @return boolean indicando se o array esta ordenado */ public boolean isOrdenado(){ boolean resp = true; for(int i = 1; i < n; i++){ if(array[i] < array[i-1]){ i = n; resp = false; } } return resp; } /* * Metodo a ser implementado nas subclasses */ public void sort(){ System.out.println("Método a ser implementado nas subclasses."); } }