자바 데이터 구조 및 알고리즘 분석-버블 정렬


저작권 고지

  • 이 기사 원저자 : Columbia Valley의 남동생
  • 작성자 블로그 주소 : http://blog.csdn.net/lfdfhl

원리 분석

정렬되지 않은 배열 {1,9,7,5,3}이 있습니다. 거품 정렬을 사용하여 배열을 작은 것에서 큰 것 (큰 것에서 작은 것)으로 정렬하십시오.

첫 번째 여행 : 총 5 개의 숫자, 4 번 비교, 프로세스는 다음과 같습니다 :
1과 9, 9가 더 크고 위치가 변경되지 않았으므로 여전히 1,9,7,5,3
9 및 7, 9가 더 크며 변경해야합니다. 위치, 9 및 7 스왑 1,7,9,5,3
9 및 5 비율, 9는 더 크고, 위치 변경 필요, 9 및 5는 1,7,5,9,3
9 및 3 비율, 9는 더 크며 변경해야 함 위치, 9 및 3 스왑 1,7,5,3,9

두 번째 라운드 : 1,7,5,3,9 3 회 비교, 프로세스는 다음과 같습니다 :
1과 7, 7이 더 크고 위치를 변경할 필요가 없으므로 여전히 1,7,5,3,9
7 및 5 비율, 7은 크고, 위치를 바꿔야하므로 1,5,7,3,9가됩니다.
7은 3보다 크고, 7은 큰, 위치를 변경해야하므로 1,5,3,7,9가됩니다.

세 번째 라운드 : 1,5,3,7,9 2 회 비교, 프로세스는 다음과 같습니다 :
1과 5 비율, 5가 더 크며 위치를 변경할 필요가 없으므로 여전히 1,5,3,7,9
5 및 3 비율, 5 큰, 위치 변경 필요, 1,3,5,7,9

네 번째 라운드 :
1, 3, 5, 7, 9 비교 1 회, 프로세스는 다음과 같습니다 : 1은 3과 비교, 3은 더 크며 위치를 변경할 필요가 없으므로 여전히 1,3,5,7,9

요약:

  • 1. 배열의 5 개 숫자, 5-1 = 4 배 비교
  • 2. 각 여행을 몇 번 비교 했습니까? 패스 수 +이 패스에서 비교 된 횟수 = 배열의 요소 수
  • 3. 매번 비교하고 최대 값을 비교 한 다음 끝에 넣습니다.
  • 4. 각 비교에서 두 숫자는 쌍으로 비교되며 위치를 반대로해야 할 수 있습니다.

암호

버블 정렬 코드는 다음과 같이 구현됩니다.

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

}

가동 결과

여기에 사진 설명 삽입

추천

출처blog.csdn.net/lfdfhl/article/details/109320033