English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
neste exemplo, vamos aprender a implementar o algoritmo de ordenação rápida em Java.
antes de aprender o algoritmo de ordenação rápida em Java, certifique-se de que você entende o funcionamento do algoritmo de ordenação rápida.
//ordenar rapidamente com Java import java.util.Arrays; class Main { //dividir o array com base no eixo de dados int partition(int array[], int low, int high) { //escolher o último elemento como eixo int pivot = array[high]; //inicializar o ponteiro dois int i = (low - 1); //colocar os elementos menores que o eixo à esquerda //o eixo à direita do eixo de pivô for (int j = low; j < high; j++) { //comparar todos os elementos com o pivot //trocar os elementos maiores que o pivot //o elemento é menor que o pivot //ordenar em ordem decrescente // if (array[j] >= pivot) if (array[j] <= pivot) { //o ponteiro dois incrementa. //trocar o elemento menor pelo maior i++; int temp = array[i]; array[i] = array[j]; array[j] = temp; } } //portanto, os elementos à esquerda são menores //os elementos à direita são maiores que o pivot int temp = array[i + 1]; array[i + 1] = array[high]; array[high] = temp; return (i + 1); } void quickSort(int array[], int low, int high) { if (low < high) { //escolher a posição do eixo e colocar todos os elementos menores //o eixo esquerdo é maior que o eixo, o eixo direito é maior que o eixo int pi = partition(array, low, high); //ordenar os elementos à esquerda do eixo quickSort(array, low, pi - 1); //ordenar os elementos à direita do eixo quickSort(array, pi + 1, high);}} } } public static void main(String args[]) { //Criar um array não ordenado int[] data = { 8, 7, 2, 1, 0, 9, 6 }; int size = data.length; //Criar objeto da classe Main Main qs = new Main(); //Passar o primeiro e o último índice para o array qs.quickSort(data, 0, size - 1); System.out.println("Array ordenado: "); System.out.println(Arrays.toString(data)); } }
Saída1
Array não ordenado: [8, 7, 2, 1, 0, 9, 6] Array ordenado: [0, 1, 2, 6, 7, 8, 9]
Aqui, os elementos do array estão ordenados em ordem crescente. Se quisermos ordenar os elementos em ordem decrescente, podemos alterar o código no loop for do método Partition():
//Substitua o sinal de menos por mais if (array[j] >= pivot) {