거품 정렬 알고리즘 원리 및 JAVA 구현 코드
알고리즘 본질: (최대치가 관건이다. 틀림없이 마지막에 놓을 것이다. 이렇게 순환한다) 매번 1위에서 뒤로 스크롤하여 비교하여 최대치를 바닥에 가라앉히고 최소치를 한 번 상승시키며 마지막은 앞으로 추진한다(즉 마지막이 방금 확정된 최대치는 비교에 참가하지 않고 비교 횟수보다 1을 줄인다)
복잡도: 시간 복잡도 O(n2), 공간 복잡도 O(1)
JAVA 소스 코드(실행 성공, Date 클래스 필요)
public static void bubbleSort(Date[] days) {
int len = days.length;
Date temp;
for (int i = len - 1; i >= 1; i--) {
for (int j = 0; j < i; j++) {
if (days[j].compare(days[j + 1]) > 0) {
temp = days[j + 1];
days[j + 1] = days[j];
days[j] = temp;
}
}
}
}
class Date {
int year, month, day;
Date(int y, int m, int d) {
year = y;
month = m;
day = d;
}
public int compare(Date date) {
return year > date.year ? 1 : year < date.year ? -1
: month > date.month ? 1 : month < date.month ? -1
: day > date.day ? 1 : day < date.day ? -1 : 0;
}
public void print() {
System.out.println(year + " " + month + " " + day);
}
}
package testSortAlgorithm;
public class BubbleSort {
public static void main(String[] args) {
int array[] = { 5, 6, 8, 4, 2, 4, 9, 0 };
bubbleSort(array);
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
public static void bubbleSort(int array[]) {
int temp;
for (int i = array.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (array[j] > array[j + 1]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 거품 정렬 알고리즘 구현 및 간단한 최적화 예시거품 정렬은 아마도 모든 프로그래머가 사용할 수 있는 알고리즘이자 가장 익숙한 알고리즘 중의 하나일 것이다. 만약에 앞의 원소가 뒤의 원소보다 크다면 마지막 결과에서 전자는 반드시 뒤에 있다.그래서 우리는 이 두 원...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.