Estructura de datos de Java y análisis de algoritmos: clasificación de burbujas


Aviso de copyright

  • Autor original de este artículo: hermano menor de Columbia Valley
  • Dirección del blog del autor: http://blog.csdn.net/lfdfhl

Análisis de principios

Hay una matriz desordenada {1,9,7,5,3}, utilice la clasificación de burbujas para ordenar la matriz de pequeña a grande (de grande a pequeña).

El primer viaje: un total de cinco números, comparados 4 veces, el proceso es el siguiente:
1 y 9, 9 es mayor, y la posición no se cambia, por lo que sigue siendo 1,9,7,5,3
9 y 7, 9 es mayor y hay que cambiar Posición, intercambio de 9 y 7 1,7,9,5,3 Relación de
9 y 5, 9 es más grande, necesita cambiar de posición, 9 y 5 intercambian 1,7,5,9,3 Relación de
9 y 3, 9 es más grande, necesita cambiar Posición, 9 y 3 swap 1,7,5,3,9

Segunda ronda: 1,7,5,3,9 comparado 3 veces, el proceso es el siguiente:
1 y 7, 7 es más grande, no es necesario cambiar de posición, por lo que sigue siendo la relación 1,7,5,3,9
7 y 5, 7 es grande, necesita cambiar de posición, por lo que se convierte en 1,5,7,3,9
7 es más grande que 3, 7 es grande, necesita cambiar de posición, por lo que se convierte en 1,5,3,7,9

La tercera ronda: 1,5,3,7,9 comparado 2 veces, el proceso es el siguiente: relación
1 y 5, 5 es más grande, no es necesario cambiar de posición, por lo que sigue siendo la relación 1,5,3,7,9
5 y 3, 5 grande, necesita cambiar de posición, convertirse en 1,3,5,7,9

La cuarta ronda:
1, 3, 5, 7, 9 comparado 1 vez, el proceso es el siguiente: 1 se compara con 3, 3 es más grande, no es necesario cambiar de posición, por lo que sigue siendo 1,3,5,7,9

resumen:

  • 1. 5 números en la matriz, comparados 5-1 = 4 veces
  • 2. ¿Cuántas veces comparaste cada viaje? El número de pases + el número de veces comparadas en este pase = el número de elementos en la matriz
  • 3. Compare cada vez, compare un valor máximo y colóquelo al final
  • 4. En cada comparación, dos números se comparan en pares y es posible que sea necesario invertir las posiciones.

Código

El código para la clasificación de burbujas se implementa de la siguiente manera:

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;
	}

}

resultado de la operación

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/lfdfhl/article/details/109320033
Recomendado
Clasificación