diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e60f755..1a3ce29 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,5 @@ name: Java CI - on: [push, pull_request] jobs: @@ -15,7 +14,8 @@ jobs: java-version: '17' distribution: 'adopt' - run: java src/algoritmos/Quicksort.java + - run: java src/algoritmos/OrdenacaoSort.java - 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/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/OrdenacaoSort.java b/src/algoritmos/OrdenacaoSort.java new file mode 100644 index 0000000..899b4de --- /dev/null +++ b/src/algoritmos/OrdenacaoSort.java @@ -0,0 +1,49 @@ +package algoritmos; + +import java.util.Arrays; + +public class OrdenacaoSort { + + public static void main(String[] args) { + // TODO Auto-generated method stub + + int[] vetor = { 5, 9, 7, 4, 6, 1, 2, 3, 10, -1, }; + + System.out.println(Arrays.toString(vetor)); + quickSort(vetor, 0, vetor.length - 1); + System.out.println(Arrays.toString(vetor)); + + } + + private static void quickSort(int[] vetor, int inicio, int fim) { + if (inicio < fim) { + int posicaoPivo = separar(vetor, inicio, fim); + quickSort(vetor, inicio, posicaoPivo - 1); + quickSort(vetor, posicaoPivo + 1, fim); + + } + } + + private static int separar(int[] vetor, int inicio, int fim) { + int pivo = vetor[inicio]; + int i = inicio + 1; + int fimTemp = fim; + while (i <= fimTemp) { + if (vetor[i] <= pivo) + i++; + else if (pivo < vetor[fimTemp]) + fimTemp--; + else { + int troca = vetor[i]; + vetor[i] = vetor[fimTemp]; + vetor[fimTemp] = troca; + i++; + fimTemp--; + } + } + vetor[inicio] = vetor[fimTemp]; + vetor[fimTemp] = pivo; + return fimTemp; + } + +} diff --git a/src/algoritmos/Quicksort.java b/src/algoritmos/Quicksort.java index 9f109aa..cd7af08 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..c4d1ba7 100644 --- a/src/algoritmos/SelectionSort.java +++ b/src/algoritmos/SelectionSort.java @@ -1,7 +1,5 @@ package algoritmos; -import java.io.IOException; - public class SelectionSort { public static void main(String args[]) { 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; + } +}