forked from kelvins/algorithms-and-data-structures
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmaximo_minimo.go
39 lines (32 loc) · 785 Bytes
/
maximo_minimo.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package main
import "fmt"
func MaximoDivisaoEConquista(vetor []int, inicio int, fim int) int {
if inicio == fim {
return vetor[inicio]
}
meio := (inicio + fim) / 2
aux1 := MaximoDivisaoEConquista(vetor, inicio, meio)
aux2 := MaximoDivisaoEConquista(vetor, meio+1, fim)
if aux1 > aux2 {
return aux1
}
return aux2
}
func MinimoMaximoRecursivo(vetor []int, minimo int, maximo int, indice int) {
if vetor[indice] < minimo {
minimo = vetor[indice]
}
if vetor[indice] > maximo {
maximo = vetor[indice]
}
if indice < len(vetor)-1 {
MinimoMaximoRecursivo(vetor, minimo, maximo, indice+1)
} else {
fmt.Println("Minimo:", minimo)
fmt.Println("Maximo:", maximo)
}
}
func main() {
slice := []int{2, 3, 9, 1, 6, 8, 5}
MinimoMaximoRecursivo(slice, 999, 0, 0)
}