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

Java 基礎教程

Java Flow Control

Java Array

Java Object-Oriented (I)

Java Object-Oriented (II)

Java Object-Oriented (III)

Java 异常处理

Java List (list)

Java Queue (queue)

Map collection Java

Set collection Java

Input/Output Java

Java Reader/Writer

Altri argomenti Java

Implementazione dell'algoritmo di ordinamento rapido in Java

Esempi Java completi

In questo esempio, impareremo a implementare l'algoritmo di ordinamento rapido in Java.

Prima di studiare l'algoritmo di ordinamento rapido in Java, assicurati di comprendere il funzionamento dell'algoritmo di ordinamento rapido.

Esempio: Implementazione del programma Java per l'algoritmo di ordinamento rapido

//用Java快速排序
import java.util.Arrays;
class Main {
  //根据数据轴划分数组
  int partition(int array[], int low, int high) {
    //选择最后一个元素作为轴
    int pivot = array[high];
    //初始化第二个指针
    int i = (low - 1);
    //把小于轴的元素放在左边
    //大于枢轴右侧的枢轴
    for (int j = low; j < high; j++) {
       //将所有元素与pivot进行比较
       //交换大于pivot的元素
       //元素小于pivot
       //按降序排序
      // if (array[j] >= pivot)
      if (array[j] <= pivot) {
        //第二个指针递增。
        //将较小的元素替换为较大的元素
        i++;
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
      }
    }
        //所以左边的元素更小
        //右边的元素大于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) {
       //选择轴位置并将所有元素放小
       //左轴大于轴,右轴大于轴
      int pi = partition(array, low, high);
      //对轴左侧的元素进行排序
      quickSort(array, low, pi - 1);
      //对轴右侧的元素进行排序
      quickSort(array, pi + 1, high);
    }
  }
  public static void main(String args[]) {
    //Crea un array non ordinato
    int[] data = { 8, 7, 2, 1, 0, 9, 6 };
    int size = data.length;
    //Crea un oggetto della classe Main
    Main qs = new Main();
    //Passa l'indice iniziale e finale all'array
    qs.quickSort(data, 0, size - 1);
    System.out.println("Array ordinato: ");
    System.out.println(Arrays.toString(data));
  }
}

Output 1

Array non ordinato:
[8, 7, 2, 1, 0, 9, 6]
Array ordinato:
[0, 1, 2, 6, 7, 8, 9]

In questo caso, gli elementi dell'array sono ordinati in ordine crescente. Se vogliamo ordinare gli elementi in ordine decrescente, possiamo modificare il codice nel ciclo for del metodo Partition():

//Modifica il simbolo di minore in maggiore
if (array[j] >= pivot) {

  Esempi Java completi