Curso De Hacker Redes

The College at Old Westbury - Bom pessoal, hoje vamos dar continuidade as aulas de ordenação, vamos aprender sobre o algoritmo QuickSort, que seria ordenação por troca de partições Qual a ideia básica dele? Dividir e conquistar, vou dividir meu vetor, escolho um elemento como pivô, e a partir desse pivô, vou fazer um processo de Particionar o meu vetor, os dados vão ser rearranjados de forma que valores menores que o pivô são colocados antes do pivô Os maiores depois com isso eu vou ter um elemento pivô, todo mundo menor que ele de um lado, todo mundo maior do outro lado Recursivamente eu vou ordenar essas duas repartições usando esse mesmo processo, por isso é dividir e conquistar Performance dele, um algoritmo excelente, N log N, pior caso dele é N^2, isso é péssimo, só que é um caso extremamente raro É um algoritmo estável, ou seja, ele não altera a ordem dos dados iguais, se eu tenho um vetor que eu tenho um número 5 aqui e outro 5 aqui Ele não vai trocar a ordem desses dois elementos de lugar, eles vão se manter, desvantagem, como vou escolher esse pivô Tem várias maneiras de escolher o pivô, e como eu vou escolher ele afeta o desempenho para melhor ou pior Aqui está a ideia básica do quickSort, eu passo um vetor, um início e um fim desse vetor, se o fim for maior que o inicio Eu calculo a posição do vetor usando uma função particiona, tendo o pivô, tenho meus dados rearranjados, chamo de novo o algoritmo quickSort Para os elementos que estão antes do pivô, do início até um elemento antes do pivô e para o elemento seguinte do pivô até o fim do vetor Eu separo os dados em duas partições com a função particiona, e ai eu chamo a função para as duas metades, recursivamente vou ordenando cada partição Como calcular o pivô? Eu tenho aqui uma função para particionar os dados, recebendo o vetor, o início e o final Eu começo dizendo que o pivô é a posição de início do vetor, eu tenho um vetor e esse início vai ser meu pivô Enquanto a posição da esquerda e da direita, esquerda início, direita final, esquerda é menor que a direita, eu vou andar com a esquerda Vou aumentando esse valor da esquerda até achar um elemento que não seja menor que o pivô, quando achar um menor paro com a esquerda Faço o mesmo processo com a direita, começo com a direita aqui, enquanto for maior que meu pivô eu vou diminuindo até achar um que não é maior Terminei esse processo, se a esquerda é menor que a direita, eu troco os dois de lugar, a esquerda vem pra cá e a direita vem pra cá. E continuo o processo, eu vou para quando a esquerda não for mais menor que a direita, então, a esquerda vai continuar vindo pra cá Vai chegar um momento em que a direita vai estar menor que a direita, parei, já movimentei todo mundo que tinha que movimentar O início vai receber o último valor da direita, onde a direita parar eu coloco no lugar do início, e a posição da direita se torna o valor do pivô Eu retorno o valor da direita, onde eu parei com a direita, é o ponto do vetor onde todo mundo antes é menor, todo mundo depois é maior Vamos ver isso na prática, eu tenho meu vetor, chamei a função particiona, vetor, início zero e final 6. Aqui está meu pivô 23, na posição de início, esquerda é menor igual que pivô? Sim, incremento esquerda. Esquerda é menor igual que pivô? Sim 4 é menor que 23 , incremento esquerda. Aqui esquerda é maior que meu pivô, então vou comparar a posição da direita. Direita é menor que meu pivô? Sim então vou trocar esquerda e direita de lugar Posição esquerda é menor que direita ainda, vou continuar meu comando while, continuo comparando a esquerda Esquerda é menor que pivô? Sim, incrementa esquerda Esquerda é menor que pivô? Sim -8 é menor que 23, incrementa esquerda Esquerda é maior que pivô, paro de mexer com a posição da esquerda, comparo com a posição da direita, 67 é maior que pivô, decrementa a posição da direita Direita maior que pivô? Sim, então decrementa a posição da direita, agora direita e esquerda estão na mesma posição Direita maior que pivô? Sim, continuo diminuindo. Direita menor que pivô e direita maior que esquerda, terminei minha repetição, então cheguei no final, troca direita e início de lugar 23 agora é meu pivô, direita é o pivô, todo mundo a esquerda dele é menor, todo mundo a direita dele é maior Agora posso fazer o mesmo processo do quickSort para a parte da esquerda e da direita, o pivô já está no lugar dele Eu tenho meu vetor sem ordenar, então particiona v 0 e 6, eu rearranjei meu vetor, mudei algumas posições de lugar e meu pivô passou a ser o 23 Está todo mundo em sua partição correspondente, então chama a função particiona de novo, dividir para conquista, quick sort novamente Tenho que ordenar -8, 4 e 21, não tenho que mudar ninguém de lugar, chamo o pivô, calculo o pivô e chamo a função de novo Esse já está no lugar dele, chamo o quickSort para essa posição, já está certo, não tem que mudar nada, então faço o mesmo processo pra cá Chamo o quickSort para essa repartição, reorganizou os dados, 67 e 90 foram trocados de lugar, 90 é meu pivô, particiona de novo 67 e 54, reorganiza, 67 é o pivô, no final todo mundo na sua posição correspondente, o vetor está ordenado No processo eu vou dividindo o vetor sempre em duas partições de modo que o pivô já está no lugar dele. E a cada passo eu calculo um novo pivô e coloco ele na sua posição correspondente e o restante do vetor repete o processo Sobre o quickSort era isso, até a próxima aula pessoal..

Curso de hacker redes graduacao a distancia gratis Niterói artigo informativo sobre drogas. Paulista ielts exam preparation brisbane Resenha, exame de faixa preta Proposta de Dissertação, como fazer bibliografia de artigos abnt Relatório de Laboratório, curso personal organizer porto alegre Paráfrases. Cost and management accounting diploma jobs rock in rio quinta feira 21 curso de hacker redes Distrito Federal contracoes e combinacoes de artigos e preposicoes em espanhol. Artigos de luxo do seculo xv e xvi Plano de negócios Itaperuna cursos capacitacao belo horizonte, cfa study material level 1 pdf.

São Luís:

Carmen Riddle, Queens County: Farmingdale State College. Lagarto: College of Physicians and Surgeons; 2011.

Aurora Hendricks, Fulton. São Paulo: Eastman School of Music; 2015.

Ana Glenn, Columbus Circle zip 10019. Mogi das Cruzes: Touro College; 2009.

inserted by FC2 system