Algoritmo merge sort

Olá, alguem poderia me explicar o algoritmo merge sort com um codigo em java didatico?
não achei nenhuma aula com codigo sobre ele.
Eu so sei o de bolha, e o de inserção.

obrigado a todos.

Dificilmente você vai encontrar um código didático para um mergesort, o que você pode ter é uma aula na qual desenvolve ele pouco a pouco, mas o resultado final ainda vai ser o mesmo.

Eu tenho o link pra uma implementação em Java, caso queira ver, o código não é meu, eu só reescrevi pra poder acompanhar melhor as aulas do Coursera, caso queira ver clique aqui.

E caso queira ver a aula do mergesort desse curso, a próxima turma começa dia 28, e é totalmente gratuito, é só se inscrever: https://www.coursera.org/course/algo

Então, eu queria uma aula ou tutorial do passo a passo do codigo, pois ja procurei e não acho…
so tem aulas teoricas, pois achei muito complexo esse algoritmo.

outra duvida qual o mais eficiente quick sort ou merge?

O curso que eu te indiquei é muito bom, com certeza vai te ajudar nisso, e nele tem um video inteiro sobre o mergesort se não me engano.

A resposta vai depender do que você quer dizer com eficiência

[quote=Rodrigo Sasaki]O curso que eu te indiquei é muito bom, com certeza vai te ajudar nisso, e nele tem um video inteiro sobre o mergesort se não me engano.

A resposta vai depender do que você quer dizer com eficiência[/quote]

Muito provavelmente ele deve estar falando do tempo de execução. Basicamente, o limite assintótico de ambos algoritmos é n * lg n. A diferença é que o quicksort é sensível à entrada. Um vetor já ordenado ou ordenado na ordem inversa degrada para um tempo de execução de n², enquanto o mergesort é (-)(n * lg n) para qualquer entrada.