Cet article décrit l'algorithme de tri rapide implémenté par Java en fonction de la division et de la méthode de conquér. Partagez-le pour votre référence, comme suit:
Package cn.nwsuaf.quick; / ** * Générez aléatoirement 20 nombres et les triez rapidement * * @author liu yonglang * * / classe publique Quick {/ ** * Fonction Exchange pour implémenter le fonctionnement d'échange de deux nombres dans le tableau * * @param array * Array to Es Opperated * @param i * First SubScript Veed Array * @Param J * Second Subscript of the Exchange Array * / Public Absud Void ARRAY * swap (int [] array, int i, int j) {int temp = array [i]; array [i] = array [j]; Array [j] = temp; } / ** * algorithme de division de division et de division * * @param Array * Array à exploiter * @Param Low * Démarrer l'adresse du module dans la division * @param height * Adresse fin du module dans la division * @return Location indice de l'élément de référence * / Public Static Int Quick (int [] Array, int, Int Low, int hauteur) {// Définir le premier nombre en tant que l'élément de référence int PIVOT = FRATRAY = Low // scanne de droite à gauche pour trouver le premier élément plus petit que pivot tandis que (basse <hauteur) {tandis que (basse <hauteur && tableau [hauteur]> = pivot) hauteur--; // indique qu'un élément plus petit que le pivot a été trouvé si (basse <hauteur) // après le swap, Low exécute +1 Swap d'opération (tableau, faible ++, hauteur); // scanne de gauche à droite pour trouver le premier élément plus grand que le pivot tandis que (basse <hauteur && tableau [bas] <= pivot) faible ++; // indique qu'un élément plus grand que le pivot a été trouvé si (basse <hauteur) // après un échange, exécute -1 Swap d'opération (tableau, faible, hauteur--); } // retour à la position finale de la hauteur de retour de l'élément de référence; } / ** * Tyte rapide de tableau * * @param Array * Array à utiliser * @param Low * Low * @param Height * High * / public static void Sort (int [] array, int low, int hauteur) {// Enregistrez la position correspondant à l'élément de référence divisé en intm; // Trier uniquement if (Low <Hight) {// Diviser le tableau Temp = Quick (tableau, bas, hauteur); // tri récursivement pour le tri d'intervalle gauche (tableau, bas, temp - 1); // tri récursivement pour le bon tri à intervalle (tableau, température + 1, hauteur); }} public static void main (String [] args) {int [] array = new int [20]; System.out.println ("Résultat de test Wulin.com:"); System.out.print ("Avant de tri Séquence:"); for (int i = 0; i <array.length; i ++) {// générer au hasard 20 entiers de 0-99 array [i] = (int) (math.random () * 100); System.out.print (array [i] + ""); } System.out.print ("/ nsorted Sequence:"); tri (array, 0, array.length - 1); pour (int i = 0; i <array.length; i ++) System.out.print (array [i] + ""); }}Résultats en cours:
PS: Voici un outil de démonstration pour votre référence:
Animation en ligne INSERT INSERT / SELECT / Bubble / Merge / Hill / Quick Tri Algorithme Process Toolet:
http://tools.vevb.com/aideddesign/paixu_ys
Pour plus d'informations sur les algorithmes Java, les lecteurs qui sont intéressés par ce site peuvent afficher les sujets: "Structure de données Java et tutoriel d'algorithme", "Résumé des conseils de nœud de Dom Operation Java", "Résumé du fichier Java et des conseils d'opération de répertoire" et "Résumé des conseils d'opération Java Cache"
J'espère que cet article sera utile à la programmation Java de tous.