forked from kelvins/algorithms-and-data-structures
-
Notifications
You must be signed in to change notification settings - Fork 1
/
MaximoMinimo.go
35 lines (29 loc) · 806 Bytes
/
MaximoMinimo.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
package maximoMinimo
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
} else {
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 )
}
}