Java 클래식 알고리즘 버블 정렬 코드 공유
원제: Java의 클래식 알고리즘: Bubble Sort(Bubble Sort)
버블 정렬이란?
버블 정렬은 순서에 따라 요소를 서로 쌍으로 비교하는 간단한 정렬 알고리즘입니다. 순서가 큰 것에서 작은 것 순이면 두 요소를 서로 비교할 때 더 큰 요소가 먼저 순위가 지정되고, 그렇지 않으면 더 큰 요소가 나중에 순위가 지정됩니다. 버블 정렬은 큰 것부터 작은 것까지의 정렬과 작은 것부터 큰 것의 정렬로 나누어진다.
원리: 인접한 두 요소를 비교하고 값이 더 큰 요소를 오른쪽 끝으로 바꿉니다.
아이디어: 인접한 두 숫자를 차례로 비교하여 앞에 소수점을 넣고 뒤에 큰 숫자를 넣습니다. 즉, 첫 번째 단계에서는 먼저 첫 번째 숫자와 두 번째 숫자를 비교하고 소수를 먼저 배치하고 큰 숫자를 마지막에 배치합니다. 그런 다음 두 번째 숫자와 세 번째 숫자를 비교하고 소수를 앞에 놓고 큰 숫자를 뒤에 놓고 마지막 두 숫자를 비교할 때까지 이렇게 계속하여 소수를 앞에 놓고 큰 숫자를 뒤에 넣습니다. 모든 정렬이 완료될 때까지 첫 번째 단계를 반복합니다.
예: 배열을 정렬하려면: int[] arr={6,3,8,2,9,1};
1차 정렬:
1차 정렬: 6 및 3 비교, 6가 3보다 큼, 위치 바꾸기: 3 6 8 2 9 1
두 번째 정렬 : 6과 8을 비교하면 6이 보다 작습니다. 8, 위치 교환 없음: 3 6 8 2 9 1
세 번째 정렬: 8과 2을 비교하면 8이 2보다 큽니다. , 교환 위치: 3 6 2 8 9 1
네 번째 순서: 8 및 9 비교, 8이 9보다 작음, 위치 교환 없음: 3 6 2 8 9 1
다섯 번째 정렬: 9 및 1 비교: 9가 1보다 큼, 위치 바꾸기: 3 6 2 8 1 9
첫 번째 여행에서 총 5 비교를 했고, 정렬 결과는 3 6 2 8 이었습니다. 1 9
---------------------------------- --- ----------
2차 정렬:
첫 번째 정렬: 3 및 6을 비교하면 3이 6 , 위치 교환하지 않음: 3 6 2 8 1 9
두 번째 정렬: 6 및 2 비교, 6이 2보다 큼, 위치 바꾸기: 3 2 6 8 1 9
3위: 6 및 8 비교, 6이 8보다 큼, 위치 교환 없음: 3 2 6 8 1 9
네 번째 정렬: 8 및 1 비교, 8은 1보다 큽니다. 위치 바꾸기: 3 2 6 1 8 9
두 번째 패스에서 총 4개의 비교가 이루어졌으며 정렬 결과는 다음과 같습니다. 3 2 6 1 8 9
---- -------------------------- ----------- ---------------세 번째 정렬:
첫 번째 정렬: 3 2과 비교하면 3이 2, 위치 교환: 2 3 6 1 8 9
두 번째 정렬:3 및 6 비교, 3이 6보다 작습니다. 위치를 교환하지 마세요. 2 3 6 1 8 9 세 번째 정렬: 6 및 1 비교, 6 더 큼 1보다 위치 교환: 2 3 1 6 8 9 두 번째 여행이 진행됩니다. 총 3 비교, 정렬 결과: 2 3 1 6 8 9 ------------ - ------------------------------------------------- - ------- 네 번째 정렬: 첫 번째 정렬: 2 및 3 비교, 2이 3보다 작음, 위치 교환 없음: 2 3 1 6 8 9 두 번째 정렬: 3 및 1 비교 , 3이 1보다 큽니다. 위치 바꾸기: 2 1 3 6 8 9 두 번째 여행은 총 2 비교를 진행했고, 정렬 결과: 2 1 3 6 8 9 ----------------------------------------------- --- -------- 다섯 번째 정렬: 첫 번째 정렬: 2과 1을 비교하면 2이 1, 포지션 교환: 1 2 3 6 8 9 두 번째 여행은 총 1회 비교, 정렬 결과: 1 2 3 6 8 9 최종 결과: 1 2 3 6 8 9--------- -------- ---------------- -------- N개 숫자를 정렬해야 하며 총 N개임을 알 수 있습니다. -1 정렬이 수행될 때마다 i에 대한 정렬 횟수는 (N-i)회입니다. , 즉 이중 루프 문을 사용할 수 있습니다. 외부 레이어는 루프의 횟수를 제어하고, 내부 레이어는 루프의 횟수를 제어합니다. 레이어는 각 패스의 사이클 수, 즉 버블 정렬의 장점: 정렬이 수행될 때마다 비교 횟수가 한 번 줄어듭니다. 수행하면 더 큰 값을 찾습니다. 위의 예와 같이 첫 번째 비교 후에는 마지막 숫자가 가장 큰 숫자여야 합니다. 두 번째 정렬에서는 마지막 숫자를 제외한 다른 숫자만 비교하면 되며 가장 큰 숫자도 찾을 수 있습니다. 두 번째 비교에 참여한 숫자 뒤에는 세 번째 비교에서는 마지막 두 숫자를 제외한 나머지 숫자만 비교하면 되는 식이다... 즉, 비교를 하지 않을 때마다 여행 당 한 번의 비교가 줄어든다. 어느 정도 알고리즘의 양. 시간 복잡도 측면에서: 1. 데이터가 올바른 경우 정렬을 완료하는 데 한 번의 이동만 필요합니다. 필요한 비교 횟수와 레코드 이동 횟수가 모두 최소값에 도달합니다. 즉, Cmin=n-1; Mmin=0; 따라서 버블링 정렬의 가장 좋은 시간 복잡도는 O(n)입니다. 2. 아쉽게도 데이터가 역순인 경우 n-1 패스가 필요합니다. 각 정렬 작업에는 n-i 비교(1≤i≤n-1)가 필요하며, 각 비교에서는 교환 레코드 위치에 도달하기 위해 레코드를 3번 이동해야 합니다. 이 경우 비교 및 이동 횟수가 최대에 도달합니다. 요약하면 버블 정렬의 전체 평균 시간 복잡도는 O(n2 ). Java 클래식 알고리즘 버블 정렬 코드: 자세히 알아보기 고전적인 Java 알고리즘 버블 정렬에 대해 공유합니다. PHP 중국어 웹사이트에 주목하세요! for(int i=1;i<arr.length;i++){
for(int j=1;j<arr.length-i;j++){
//交换位置
}
버블 정렬의 최악의 시간 복잡도는 O(n2)입니다.
/*
* 冒泡排序 */public class BubbleSort {
public static void main(String[] args) {
int[] arr={6,3,8,2,9,1};
System.out.println("排序前数组为:");
for(int num:arr){
System.out.print(num+" ");
}
for(int i=0;i<arr.length-1;i++){//外层循环控制排序趟数 for(int j=0;j<arr.length-1-i;j++){//内层循环控制每一趟排序多少次 if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.println();
System.out.println("排序后的数组为:");
for(int num:arr){
System.out.print(num+" ");
}
}
}

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Java의 Weka 가이드. 여기에서는 소개, weka java 사용 방법, 플랫폼 유형 및 장점을 예제와 함께 설명합니다.

Java의 Smith Number 가이드. 여기서는 정의, Java에서 스미스 번호를 확인하는 방법에 대해 논의합니다. 코드 구현의 예.

이 기사에서는 가장 많이 묻는 Java Spring 면접 질문과 자세한 답변을 보관했습니다. 그래야 면접에 합격할 수 있습니다.

Java 8은 스트림 API를 소개하여 데이터 컬렉션을 처리하는 강력하고 표현적인 방법을 제공합니다. 그러나 스트림을 사용할 때 일반적인 질문은 다음과 같은 것입니다. 기존 루프는 조기 중단 또는 반환을 허용하지만 스트림의 Foreach 메소드는이 방법을 직접 지원하지 않습니다. 이 기사는 이유를 설명하고 스트림 처리 시스템에서 조기 종료를 구현하기위한 대체 방법을 탐색합니다. 추가 읽기 : Java Stream API 개선 스트림 foreach를 이해하십시오 Foreach 메소드는 스트림의 각 요소에서 하나의 작업을 수행하는 터미널 작동입니다. 디자인 의도입니다

Java의 TimeStamp to Date 안내. 여기서는 소개와 예제와 함께 Java에서 타임스탬프를 날짜로 변환하는 방법에 대해서도 설명합니다.

캡슐은 3 차원 기하학적 그림이며, 양쪽 끝에 실린더와 반구로 구성됩니다. 캡슐의 부피는 실린더의 부피와 양쪽 끝에 반구의 부피를 첨가하여 계산할 수 있습니다. 이 튜토리얼은 다른 방법을 사용하여 Java에서 주어진 캡슐의 부피를 계산하는 방법에 대해 논의합니다. 캡슐 볼륨 공식 캡슐 볼륨에 대한 공식은 다음과 같습니다. 캡슐 부피 = 원통형 볼륨 2 반구 볼륨 안에, R : 반구의 반경. H : 실린더의 높이 (반구 제외). 예 1 입력하다 반경 = 5 단위 높이 = 10 단위 산출 볼륨 = 1570.8 입방 단위 설명하다 공식을 사용하여 볼륨 계산 : 부피 = π × r2 × h (4

Spring Boot는 강력하고 확장 가능하며 생산 가능한 Java 응용 프로그램의 생성을 단순화하여 Java 개발에 혁명을 일으킨다. Spring Ecosystem에 내재 된 "구성에 대한 협약"접근 방식은 수동 설정, Allo를 최소화합니다.
