English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico de Java

Controle de fluxo Java

Java arrays

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Queue (fila)

conjunto Java Map

conjunto Java Set

E/S do Java (I/O)

Reader do Java/Writer

outros tópicos do Java

implementação do algoritmo de ordenação rápida em Java

Exemplos completos Java

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.

exemplo: implementação do algoritmo de ordenação rápida em Java

//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) {

  Exemplos completos Java