QuickSort 2
Um tipo de algoritmo muito usado na resolução de problemas computacionais são os algoritmos de ordenação, que servem para ordenar e organizar listas de números ou palavras de acordo com a sua necessidade. Em ciência da computação é um algoritmo que coloca os elementos de uma dada sequência em uma certa ordem, em outras palavras, efetua sua ordenação completa ou parcial. As ordens mais usadas são a numérica e a lexicográfica. Existem várias razões para se ordenar uma sequência. Uma delas é a possibilidade se acessar seus dados de modo mais eficiente. As linguagens de programação já possuem métodos de ordenação, mas é bom saber como funcionam os algoritmos, pois há casos de problemas em que o algoritmo de ordenação genérico não resolve, às vezes é necessário modificá-lo.
Dentro dos algoritmos de ordenação existem dois grandes grupos:
Métodos Simples: Insertion, Selection sort, Bubble sort e Comb sort.
Métodos Sofisticados: Merge sort, Heapsort, Shell sort, Radix sort, Gnome sort, Count sort, Bucket sort, Cocktail sort, Timsort e Quick sort.
O algoritmo Quicksort é um método de ordenação muito rápido e eficiente, inventado por Charles Antony Richard Hoare em 1960, quando visitou a Universidade de Moscovo como estudante. Naquela época, Hoare trabalhou em um projeto de tradução de máquina para o National Physical Laboratory. Ele criou o Quicksort ao tentar traduzir um dicionário de inglês para russo, ordenando as palavras, tendo como objetivo reduzir o problema original em subproblemas que possam ser resolvidos mais fácil e rapidamente. Foi publicado em 1962 após uma série de refinamentos.
O Quicksort é um algoritmo de ordenação por comparação, ou seja, é um tipo de algoritmo de ordenação que lê apenas os elementos da lista através de uma operação de comparação abstrata única (muitas vezes um operador "menor ou igual a"), que determina qual dos dois elementos devem ocorrer em primeiro lugar na lista final de classificação.
Vantagens: Extremamente eficiente,