Skip to content

Add kotlin algorithms and fix java and kotlin compilation #340

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,8 @@ In order to achieve greater coverage and encourage more people to contribute to
</a>
</td>
<td> <!-- Kotlin -->
<a href="./CONTRIBUTING.md">
<img align="center" height="25" src="./logos/github.svg" />
<a href="./src/kotlin/Dijkstra.kt">
<img align="center" height="25" src="./logos/kotlin.svg" />
</a>
</td>
</tr>
Expand Down Expand Up @@ -233,8 +233,8 @@ In order to achieve greater coverage and encourage more people to contribute to
</a>
</td>
<td> <!-- Kotlin -->
<a href="./CONTRIBUTING.md">
<img align="center" height="25" src="./logos/github.svg" />
<a href="./src/kotlin/BinarySearch.kt">
<img align="center" height="25" src="./logos/kotlin.svg" />
</a>
</td>
</tr>
Expand Down Expand Up @@ -291,8 +291,8 @@ In order to achieve greater coverage and encourage more people to contribute to
</a>
</td>
<td> <!-- Kotlin -->
<a href="./CONTRIBUTING.md">
<img align="center" height="25" src="./logos/github.svg" />
<a href="./src/kotlin/GraphSearch.kt">
<img align="center" height="25" src="./logos/kotlin.svg" />
</a>
</td>
</tr>
Expand Down Expand Up @@ -1063,7 +1063,7 @@ In order to achieve greater coverage and encourage more people to contribute to
</a>
</td>
<td> <!-- Java -->
<a href="./src/java/FibonacciMemoization.java">
<a href="src/java/FibonacciMemorization.java">
<img align="center" height="25" src="./logos/java.svg" />
</a>
</td>
Expand Down
4 changes: 2 additions & 2 deletions src/java/BinarySearch.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
public class BuscaBinaria {
public class BinarySearch {

public int posicao;

BuscaBinaria(int[] array, int Objetivo) {
BinarySearch(int[] array, int Objetivo) {
this.posicao = BinarySearch(Objetivo, array);
}

Expand Down
2 changes: 1 addition & 1 deletion src/java/BinarySearchTree.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
* Utiliza a classe No
*/
public class ArvoreDeBuscaBinaria {
public class BinarySearchTree {

public static void main(String[] args) {
No Arvore = new No(45);
Expand Down
2 changes: 1 addition & 1 deletion src/java/BinaryTree.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* Utiliza a classe No
*/

public class ArvoreBinaria {
public class BinaryTree {

public static void main(String[] args) {
No raiz = new No(9);
Expand Down
4 changes: 4 additions & 0 deletions src/java/BucketSort.java
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class BucketSort {

/**
Expand Down
2 changes: 1 addition & 1 deletion src/java/DoublyLinkedList.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// javac ListaDuplamenteEncadeada.java
// java ListaDuplamenteEncadeada

public class ListaDuplamenteEncadeada {
public class DoublyLinkedList {

public static void main(String[] args) {
LinkedList linkedList = new LinkedList();
Expand Down
2 changes: 1 addition & 1 deletion src/java/ExponentiationRecursive.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class Main {
class ExponencialRecursive {

public static long exponenciacao(long base, long expoente) { // exponenciacao recursiva
if (expoente == 0) return 1;
Expand Down
6 changes: 3 additions & 3 deletions src/java/Factorial.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
public class Fatorial {
public class Factorial {

public static void main(String[] args) {
System.out.println("Fatorial de 7 : " + Fatorial(7));
System.out.println("Fatorial de 7 : " + Factorial(7));
}

public static int Fatorial(int x) {
public static int Factorial(int x) {
int total = 1;
for (int i = 2; i < x + 1; i++) {
total = total * i;
Expand Down
14 changes: 7 additions & 7 deletions src/java/FactorialRecursive.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
public class FatorialRecursiva {
public class FactorialRecursive {

public static void main(String[] args) {
System.out.println("Fatorial de 0 : " + Fatorial(0));
System.out.println("Fatorial de 1 : " + Fatorial(1));
System.out.println("Fatorial de 3 : " + Fatorial(3));
System.out.println("Fatorial de 7 : " + Fatorial(7));
System.out.println("Fatorial de 0 : " + FactorialRecursive(0));
System.out.println("Fatorial de 1 : " + FactorialRecursive(1));
System.out.println("Fatorial de 3 : " + FactorialRecursive(3));
System.out.println("Fatorial de 7 : " + FactorialRecursive(7));
}

public static int Fatorial(int x) {
public static int FactorialRecursive(int x) {
if (x <= 1) return 1;
else return x * Fatorial(x - 1);
else return x * FactorialRecursive(x - 1);
}
}
6 changes: 3 additions & 3 deletions src/java/FibonacciIterative.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
public class Fibonacci {
public class FibonacciIterative {

public static void main(String[] args) {
System.out.println("Fib(16) : " + Fibonacci(16));
System.out.println("Fib(16) : " + FibonacciIterative(16));
}

public static int Fibonacci(int x) {
public static int FibonacciIterative(int x) {
if (x <= 1) {
return 1;
} else {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import java.util.HashMap;

public class Fibonacci {
public class FibonacciMemorization {

// Create a memoization HashMap to store computed Fibonacci values
private static HashMap<Integer, Integer> memo = new HashMap<>();
Expand Down
8 changes: 4 additions & 4 deletions src/java/FibonacciRecursive.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
public class Fibonacci {
public class FibonacciRecursive {

public static void main(String[] args) {
System.out.println("Fib(16) : " + Fibonacci(16));
System.out.println("Fib(16) : " + FibonacciRecursive(16));
}

public static int Fibonacci(int x) {
public static int FibonacciRecursive(int x) {
if (x <= 1) return 1;
else return Fibonacci(x - 1) + Fibonacci(x - 2);
else return FibonacciRecursive(x - 1) + FibonacciRecursive(x - 2);
}
}
2 changes: 1 addition & 1 deletion src/java/LinearSearch.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
public class LinearSearchIterative {
public class LinearSearch {
public static void main(String[] args) {
int array[] = {1, 2, 40, 233, 78, 83, 456};
System.out.println(LinearSearch(array, 40));
Expand Down
2 changes: 1 addition & 1 deletion src/java/MaxRecursive.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
public class MaxMinArray {
public class MaxRecursive {

public static void main(String[] args) {
int vetor[] = {9, 0, 4, 2, 3, 8, 7, 1, 6, 5};
Expand Down
2 changes: 1 addition & 1 deletion src/java/MinMaxIterative.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
public class MinMaxIterativo {
public class MinMaxIterative {
public static void main(String[] args) {
int arr[] = {1, 5, -20, 6, 15};
int min = arr[0];
Expand Down
2 changes: 1 addition & 1 deletion src/java/MinMaxRecursive.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
public class MinMaxRecursivo {
public class MinMaxRecursive {

public static void main(String[] args) {
int[] arr = {9, 8, 13, 33, 18, 20, 88, 14, 40, 77};
Expand Down
2 changes: 1 addition & 1 deletion src/java/Palindrome.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
public class Palindromo {
public class Palindrome {
public static void main(String[] args) {
String palavra, palavraInvertida = "";
palavra = "A grama é amarga";
Expand Down
33 changes: 8 additions & 25 deletions src/java/Queue.java
Original file line number Diff line number Diff line change
@@ -1,46 +1,29 @@
public class fila {
public class Queue<T> {

public processo processoAtual;
public fila proximaFila;
public T processoAtual;
public Queue<T> proximaFila;

public fila() {
public Queue() {
this.processoAtual = null;
this.proximaFila = null;
}

public void inserirfila(processo processoNovo) {
public void inserirfila(T processoNovo) {
if (this.processoAtual == null) {
this.processoAtual = processoNovo;
this.proximaFila = new fila();
this.proximaFila = new Queue<>();
} else {
this.proximaFila.inserirfila(processoNovo);
}
}

public processo removerfila() {
processo removido = this.processoAtual;
public T removerfila() {
T removido = this.processoAtual;
this.processoAtual = this.proximaFila.processoAtual;
this.proximaFila = this.proximaFila.proximaFila;
return removido;
}

public String checkfila(String vazia) {
if (this.proximaFila.proximaFila == null) {
vazia =
vazia + " " + this.processoAtual.getPrioridade() + " " + this.processoAtual.getTempo();
} else {
vazia =
vazia
+ " "
+ this.processoAtual.getPrioridade()
+ " "
+ this.processoAtual.getTempo()
+ " &&"
+ this.proximaFila.checkfila(vazia);
}
return vazia;
}

public boolean vaziafila() {
if (this.proximaFila == null) {
return true;
Expand Down
45 changes: 10 additions & 35 deletions src/java/Stack.java
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
public class pilha {
public class Stack<T> {

public processo processoAtual;
public pilha proximaPilha;
public T processoAtual;
public Stack<T> proximaPilha;

public pilha() {
public Stack() {
this.processoAtual = null;
this.proximaPilha = null;
}

public void inserirpilha(processo processoNovo) {
public void inserirpilha(T processoNovo) {
if (this.processoAtual == null) {
this.processoAtual = processoNovo;
this.proximaPilha = new pilha();
this.proximaPilha = new Stack<>();
} else {
this.proximaPilha.inserirpilha(processoNovo);
}
}

public processo removerPilha() {
public T removerPilha() {
if (this.proximaPilha.proximaPilha == null) {
processo removido = this.processoAtual;
T removido = this.processoAtual;
this.processoAtual = null;
this.proximaPilha = null;
return removido;
Expand All @@ -28,31 +28,6 @@ public processo removerPilha() {
}
}

public String checkpilha(String vazia) {
if (this.proximaPilha.proximaPilha == null) {
vazia =
" " + this.processoAtual.getPrioridade() + " " + this.processoAtual.getTempo() + vazia;
} else {
vazia =
this.proximaPilha.checkpilha(vazia)
+ " && "
+ this.processoAtual.getPrioridade()
+ " "
+ this.processoAtual.getTempo()
+ " "
+ vazia;
}
return vazia;
}

public boolean vaziaPilha() {
if (this.proximaPilha == null) {
return true;
}
return false;
}

public int tempoTrabalhado(int tempo) {
return this.processoAtual.trabalhado(tempo);
}
}
return this.proximaPilha == null;
}}
2 changes: 1 addition & 1 deletion src/java/TestMergeSort.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
public class teste {
public class TestMergeSort {
public static void main(String[] args) {
int[] arrayteste = {10, 8, 6, 4, 2, 0, 1, 3, 5, 7, 9};
MergeSort ordem = new MergeSort();
Expand Down
2 changes: 1 addition & 1 deletion src/java/TowerOfHanoi.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
public class TorreDeHanoi {
public class TowerOfHanoi {

public static void main(String[] args) {
TorreDeHanoi(0, 2, 1, 8);
Expand Down
27 changes: 27 additions & 0 deletions src/kotlin/BinarySearch.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
fun <T: Comparable<T>> binarySearch(list: List<T>, value: T): Int {
var start = 0
var end = list.size - 1
var middle = end / 2

while (start != end) {
when {
list[middle] < value -> {
start = middle + 1
middle = (start + end) / 2
}
list[middle] > value -> {
end = middle
middle = (start + end) / 2
}
list[middle] == value -> {
return middle
}
}
}

return -1
}

fun main() {
print(binarySearch(listOf(1, 5, 10, 12, 18, 22, 87, 90, 112, 129), 12))
}
Loading