Structure de données Java et tri par bulles d'analyse d'algorithmes


Copyright

  • Auteur original de cet article: le frère cadet de Columbia Valley
  • Adresse du blog de l'auteur: http://blog.csdn.net/lfdfhl

Analyse de principe

Il existe un tableau non ordonné {1,9,7,5,3}, veuillez utiliser le tri à bulles pour trier le tableau de petit à grand (grand à petit).

Le premier voyage: un total de cinq nombres, comparé 4 fois, le processus est le suivant:
1 et 9, 9 est plus grand, et la position n'est pas changée, donc c'est toujours 1,9,7,5,3
9 et 7, 9 est plus grand et doit être changé Position, 9 et 7 swap 1,7,9,5,3 ratio
9 et 5, 9 est plus grand, besoin de changer de position, 9 et 5 swap 1,7,5,9,3 ratio
9 et 3, 9 est plus grand, besoin de changer Échange de position, 9 et 3 1,7,5,3,9

Deuxième tour: 1,7,5,3,9 comparé 3 fois, le processus est le suivant:
1 et 7, 7 est plus gros, pas besoin de changer de position, donc c'est toujours 1,7,5,3,9 rapport
7 et 5, 7 est grand, besoin de changer de position, donc il devient 1,5,7,3,9
7 est plus grand que 3, 7 est grand, besoin de changer de position, donc il devient 1,5,3,7,9

Le troisième tour: 1,5,3,7,9 comparé 2 fois, le processus est le suivant:
ratio 1 et 5, 5 est plus grand, pas besoin de changer de position, donc c'est toujours 1,5,3,7,9 ratio
5 et 3, 5 gros, besoin de changer de position, devenir 1,3,5,7,9

Le quatrième tour:
1, 3, 5, 7, 9 comparé 1 fois, le processus est le suivant: 1 est comparé à 3, 3 est plus grand, pas besoin de changer de position, donc c'est toujours 1,3,5,7,9

résumé:

  • 1. 5 nombres dans le tableau, comparés 5-1 = 4 fois
  • 2. Combien de fois avez-vous comparé chaque voyage? Le nombre de passes + le nombre de fois comparé dans cette passe = le nombre d'éléments dans le tableau
  • 3. Comparez à chaque fois pour trouver une valeur maximale et mettez-la à la fin
  • 4. Dans chaque comparaison, deux nombres sont comparés par paires, et les positions peuvent devoir être inversées

Code

Le code du tri à bulles est implémenté comme suit:

package com.algorithm;
/**
 * 本文作者:谷哥的小弟 
 * 博客地址:http://blog.csdn.net/lfdfhl
 */
public class BubbleSort {
    
    

	public static void main(String[] args) {
    
    
		int[] intArray = {
    
    11, 99, 77, 5, 0, -1};
		printArray(intArray);
		System.out.println();
		bubble(intArray);
	}

	public static void bubble(int[] intArray) {
    
    
		for (int i = 0; i < intArray.length - 1; i++) {
    
    
			for (int j = 0; j < intArray.length - 1 - i; j++) {
    
    
				if (intArray[j] > intArray[j + 1]) {
    
    
					swap(intArray, j, j + 1);
				}
			}
		}
		printArray(intArray);
	}
	
	//打印数组
	public static void printArray(int[] intArray) {
    
    
		for (int i = 0; i < intArray.length; i++) {
    
    
			System.out.print(intArray[i] + " ");
		}
	}
	
	//交换数组中的元素
	public static void swap(int[] intArray, int i, int j) {
    
    
		int temp = 0;
		temp = intArray[i];
		intArray[i] = intArray[j];
		intArray[j] = temp;
	}

}

résultat de l'opération

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/lfdfhl/article/details/109320033
conseillé
Classement