diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e60f755..24e5713 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,5 @@ name: Java CI - on: [push, pull_request] jobs: @@ -18,4 +17,4 @@ jobs: - run: java src/algoritmos/RadixSort.java - run: java src/algoritmos/BubbleSort.java - run: java src/algoritmos/MergeSort.java - - run: java src/algoritmos/SelectionSort.java \ No newline at end of file + - run: java src/algoritmos/SelectionSort.java diff --git a/src/algoritmos/BubbleSort.java b/src/algoritmos/BubbleSort.java index 7dd1703..eefb44a 100644 --- a/src/algoritmos/BubbleSort.java +++ b/src/algoritmos/BubbleSort.java @@ -1,40 +1,36 @@ package algoritmos; -import java.io.IOException; -public class BubbleSort { - - public static void main(String[] args) throws IOException { - int quantidade = 10000; - int[] vetor = new int[quantidade]; - - System.out.println("Vetor desordenado: "); - for (int i = 0; i < vetor.length; i++) { - vetor[i] = (int) (Math.random() * quantidade); - System.out.print(i + " "); - } - bubbleSort(vetor); - - System.out.println("\nVetor ordenado: "); - for (int i : vetor) { - System.out.print(i + " "); - } - } - - private static void bubbleSort(int vetor[]) { - boolean troca = true; - int aux; - while (troca) { - troca = false; - for (int i = 0; i < vetor.length - 1; i++) { - if (vetor[i] > vetor[i + 1]) { - aux = vetor[i]; - vetor[i] = vetor[i + 1]; - vetor[i + 1] = aux; - troca = true; - } - } - } - } -} \ No newline at end of file +public class BubbleSort { + public static void main(String args[]) { + int[] v = {5, 2, 4, 3, 0, 9, 7, 8, 1, 6}; + BubbleSort bs = new BubbleSort(); + bs.ordenar(v); + for(int num : v) { + System.out.print(num + " "); + } + } + + /** + * Método que ordena um vetor de inteiros utilizando o algoritmo + * de Bubble Sort. + * + * @param v - Vetor que será ordenado. + */ + public void ordenar(int[] v) { + // for utilizado para controlar a quantidade de vezes que o vetor será ordenado. + for(int i = 0; i < v.length - 1; i++) { + // for utilizado para ordenar o vetor. + for(int j = 0; j < v.length - 1 - i; j++) { + /* Se o valor da posição atual do vetor for maior que o proximo valor, + então troca os valores de lugar no vetor. */ + if(v[j] > v[j + 1]) { + int aux = v[j]; + v[j] = v[j + 1]; + v[j + 1] = aux; + } + } + } + } +} diff --git a/src/algoritmos/Bubblesort.java b/src/algoritmos/Bubblesort.java new file mode 100644 index 0000000..0e18566 --- /dev/null +++ b/src/algoritmos/Bubblesort.java @@ -0,0 +1,33 @@ +package algoritmos; + + +public class Quicksort { + + public static void main(String[] args) throws IOException { + int quantidade = 10000; + int[] vetor = new int[quantidade]; + + System.out.println("Vetor desordenado: "); + for (int i = 0; i < vetor.length; i++) { + vetor[i] = (int) (Math.random() * quantidade); + System.out.print(i + " "); + } + bubbleSort(vetor); + System.out.println("\nVetor ordenado: "); + for (int i : vetor) { + System.out.print(i + " "); + } + } + + private static void bubbleSort(int[] arr) { + for(int i = 0; i < arr.length - 1; i ++){ + for(int j = 0; j < arr.length - 1 ;j++){ + if(arr[j] > arr[j+1]){ + int swap = arr[j]; // place the bigger number to swap + arr[j] = arr[j+1]; // place the smaller number + arr[j+1] = swap; + } + } + } + } +} diff --git a/src/algoritmos/MergeSort.java b/src/algoritmos/MergeSort.java index a1ad3c3..c25eead 100644 --- a/src/algoritmos/MergeSort.java +++ b/src/algoritmos/MergeSort.java @@ -2,7 +2,7 @@ import java.io.IOException; -public class Mergesort { +public class MergeSort { public static void main(String[] args) throws IOException { int quantidade = 10000; @@ -45,7 +45,9 @@ private static void mergeSort(int[] a, int n) { private static void merge( int[] a, int[] l, int[] r, int left, int right) { - int i = 0, j = 0, k = 0; + int i = 0; + int j = 0; + int k = 0; while (i < left && j < right) { if (l[i] <= r[j]) { a[k++] = l[i++]; diff --git a/src/algoritmos/Quicksort.java b/src/algoritmos/Quicksort.java index 9f109aa..2699a48 100644 --- a/src/algoritmos/Quicksort.java +++ b/src/algoritmos/Quicksort.java @@ -30,7 +30,8 @@ private static void quickSort(int[] vetor, int inicio, int fim) { private static int posicaoPivor(int[] vetor, int inicio, int fim) { int pivo = vetor[inicio]; - int i = inicio + 1, f = fim; + int i = inicio + 1; + int f = fim; while (i <= f) { if (vetor[i] <= pivo) i++; diff --git a/src/algoritmos/SelectionSort.java b/src/algoritmos/SelectionSort.java index c7d5ef7..ce777a1 100644 --- a/src/algoritmos/SelectionSort.java +++ b/src/algoritmos/SelectionSort.java @@ -1,6 +1,6 @@ package algoritmos; -import java.io.IOException; + public class SelectionSort { diff --git a/src/algoritmos/SelectionSortExample.java b/src/algoritmos/SelectionSortExample.java new file mode 100644 index 0000000..61248e7 --- /dev/null +++ b/src/algoritmos/SelectionSortExample.java @@ -0,0 +1,38 @@ +package algoritmos; + +public class SelectionSortExample { + + public static void main(String a[]){ + int quantidade = 10000; + int[] arr1 = new int[quantidade]; + + System.out.println("Before Selection Sort"); + for (int i = 0; i < arr1.length; i++) { + arr1[i] = (int) (Math.random() * quantidade); + System.out.print(arr1[i]+" "); + } + System.out.println(); + + selectionSort(arr1);//sorting array using selection sort + + System.out.println("After Selection Sort"); + for (int i = 0; i < arr1.length; i++) { + System.out.print(arr1[i]+" "); + } + } + + public static void selectionSort(int[] arr){ + for (int i = 0; i < arr.length - 1; i++) + { + int index = i; + for (int j = i + 1; j < arr.length; j++){ + if (arr[j] < arr[index]){ + index = j;//searching for lowest index + } + } + int smallerNumber = arr[index]; + arr[index] = arr[i]; + arr[i] = smallerNumber; + } + } +} diff --git a/src/exemplos/Main.java b/src/exemplos/Main.java new file mode 100644 index 0000000..c2d1de7 --- /dev/null +++ b/src/exemplos/Main.java @@ -0,0 +1,47 @@ +package exemplos; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; + +public class Main { + + public static void main(String[] args) { + // TODO Auto-generated method stub + f(10); + readFile(""); + validarString("omnilink"); + } + + public static long f(int n) { + if (n < 2) { + return n; + } else { + return f(n - 1) + f(n - 2); + } + } + + public static String readFile(String fileName){ + BufferedReader br; + try { + br = new BufferedReader(new FileReader(fileName)); + final StringBuilder sb = new StringBuilder(); + String line = br.readLine(); + + while (line != null) { + sb.append(line); + sb.append(System.lineSeparator()); + line = br.readLine(); + } + br.close(); + return sb.toString(); + } catch (IOException e) { + e.printStackTrace(); + } + return ""; + } + + public static boolean validarString(String entrada) { + return entrada != null && !entrada.equals("") && entrada.length() > 3; + } +}