- To use line breaks you can use
every tree node key and use center alignment.
\tikzset{every tree node/.style={align=center}}
- You can shorten the
sibling distance to make it more compact.
\tikzset{sibling distance=6pt}
- You can also set the
level distance
\tikzset{level distance=60pt}
With these applied, you have:
Code 1
\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage{tikz}
\usepackage{tikz-qtree}
\tikzset{level distance=60pt,
sibling distance=6pt,
every tree node/.style={align=center},
}
\begin{document}
\begin{tikzpicture}
\Tree
[.{Métodos de otimização}
[.{Métodos exatos}
[.{Branch-and-X}
[{Branch-and-bound} ]
[{Branch-and-cut} ]
[{Branch-and-price} ]
]
[{Programação\\ de restrições} ]
[{Programação\\ dinâmica} ]
[{A*, IDA*} ]
]
[.{Métodos aproximados}
[.{Algoritmos Heurísticos}
[.{Meta-heurísticas}
[{Meta-heurísticas\\ baseadas em solução única} ]
[{Meta-heurísticas\\ baseadasem população} ]
]
[{Heurísticas específicas\\ do problema} ]
]
[{Algoritmos\\ de aproximação} ]
]
]
\end{tikzpicture}
\end{document}

I don't know though if you are after the following instead.
Code 2
\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage{tikz}
\usepackage{tikz-qtree}
\tikzset{level distance=60pt,
sibling distance=6pt,
every tree node/.style={align=center},
}
\begin{document}
\begin{tikzpicture}
\Tree
[.{Métodos de otimização}
[.{Métodos exatos}
[.{Branch-and-X}
[.{Branch-and-bound} ]
[.{Branch-and-cut} ]
[.{Branch-and-price} ]
]
[.{Programação\\ de restrições} ]
[.{Programação\\ dinâmica} ]
[.{A*, IDA*} ]
]
[.{Métodos aproximados}
[.{Algoritmos Heurísticos}
[.{Meta-heurísticas}
[.{Meta-heurísticas\\ baseadas em solução única} ]
[.{Meta-heurísticas\\ baseadasem população} ]
]
[.{Heurísticas específicas\\ do problema} ]
]
[.{Algoritmos\\ de aproximação} ]
]
]
\end{tikzpicture}
\end{document}

Edit
You can also shorten the first level sibling distance with a negative distance like
\tikzset{level 1/.style={sibling distance=-100pt}}
You can also adjust each level sibling distance this way.
To make your tree look like the picture you posted, you can use the arrows library to style your edges. (I don't know if doing this is a sin but here it is anyway.) It is a sin in the pgf world to scale the text with the figure but this seems to be the default behavior in tikz-qtree. I scaled down to 0.8 so that it fits inside a portrait a4paper. Here is another full code.
Code 3
\documentclass[10pt]{article}
\usepackage{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage{tikz}
\usepackage{tikz-qtree}
\usetikzlibrary{arrows}
\tikzset{level distance=60pt,
sibling distance=0pt,
level 1/.style={sibling distance=-100pt},
level 2/.style={sibling distance=0pt},
level 3/.style={sibling distance=0pt},
execute at begin node=\strut,
every tree node/.style={align=center},
edge from parent/.append style={very thick,-stealth}
}
\begin{document}
\begin{tikzpicture}[scale=0.8]
\Tree
[.{Métodos de otimização}
[.{Métodos exatos}
[.{Branch-and-X}
[.{Branch-\\ and-\\ bound} ]
[.{Branch-\\ and-\\ cut} ]
[.{Branch-\\ and-\\ price} ]
]
[.{Programação\\ de restrições} ]
[.{Programação\\ dinâmica} ]
[.{A*, IDA*} ]
]
[.{Métodos\\ aproximados}
[.{Algoritmos\\ Heurísticos}
[.{Meta-heurísticas}
[.{Meta-heurísticas\\ baseadas em\\ solução única} ]
[.{Meta-heurísticas\\ baseadasem\\ população} ]
]
[.{Heurísticas\\ específicas\\ do problema} ]
]
[.{Algoritmos\\ de aproximação} ]
]
]
\end{tikzpicture}
\end{document}
