>  기사  >  Java  >  선택 정렬과 버블 정렬의 차이점

선택 정렬과 버블 정렬의 차이점

(*-*)浩
(*-*)浩원래의
2019-06-05 09:58:126680검색

버블 정렬:
버블 정렬(BubbleSort)의 기본 개념은 인접한 두 숫자를 순서대로 비교하여 앞에 소수점을 넣고 뒤에 큰 숫자를 넣는 것입니다. 즉, 첫 번째 단계에서는 먼저 첫 번째 숫자와 두 번째 숫자를 비교하고 소수점을 앞에 배치하고 큰 숫자를 뒤에 배치합니다.

선택 정렬과 버블 정렬의 차이점

그런 다음 두 번째 숫자와 세 번째 숫자를 비교하고 소수를 앞에 넣고 큰 숫자를 뒤에 넣고 마지막 두 숫자를 비교할 때까지 이렇게 계속해서 앞에 소수를 넣고 큰 숫자를 앞에 넣습니다. 뒤쪽에. 이것이 첫 번째 여행의 끝이며, 끝에 가장 큰 숫자가 남습니다. 두 번째 단계에서는 여전히 첫 번째 숫자 쌍에서 비교를 시작합니다(두 번째 숫자와 세 번째 숫자의 교환으로 인해 첫 번째 숫자가 더 이상 두 번째 숫자보다 작지 않기 때문일 수 있음). 숫자가 재생된 후 마지막에서 두 번째 숫자까지 비교가 계속됩니다(마지막 첫 번째 위치가 이미 가장 큰 위치임). 두 번째 패스가 끝나면 a. 새로운 최대 숫자는 마지막에서 두 번째 위치에서 얻어집니다(실제로 전체 시퀀스에서 두 번째로 큰 숫자입니다). 이렇게 계속해서 정렬이 최종적으로 완료될 때까지 위의 과정을 반복하세요. (추천 학습: Java 비디오 튜토리얼)

선택 정렬:
처음으로 인덱스 0부터 시작하여 숫자를 인덱스 0과 비교하고 다음 n-1 숫자를 최소값 또는 최대값으로 찾습니다. 아래 첨자 0이 있는 위치에서 두 번째부터 비교를 시작합니다. 나머지 최대값 또는 최소값을 쿼리하고 정렬이 완료될 때까지 계속합니다.

public class MaoPao {
	public static void main(String[] args) {
		int arr[]={23,12,46,24,87,65,18,14,43,434,65,76};
		int k=0;
		//冒泡排序
		for(int i=0;i<arr.length-1;i++){
			for(int j=0;j<arr.length-1;j++){
					if(arr[j]<arr[j+1]){
						int t=arr[j];
						arr[j]=arr[j+1];
						arr[j+1]=t;
						k++;
					}
				System.out.print("i="+i+"的第j="+j+"次交换\t");
				for(int d=0;d<arr.length;d++){
					System.out.print(arr[d]+"\t");
				}
				System.out.println();
			}
		}
		System.out.println("交换的次数为"+k);

		//选择排序
		int l=0;
		for(int i=0;i<arr.length-1;i++){
			for(int j=i+1;j<arr.length-1;j++){
				if(arr[i]<arr[j]){
					int t=arr[i];
					arr[i]=arr[j];
					arr[j]=t;
					l++;
				}
				System.out.print("i="+i+"的第j="+j+"次交换\t");
				for(int d=0;d<arr.length;d++){
					System.out.print(arr[d]+"\t");
				}
				System.out.println();
			}
		}
		for(int i=0;i<arr.length;i++){
			System.out.print(arr[i]+"\t");
		}
		System.out.println("交换的次数为"+l);
	}
}

차이를 요약할 시간입니다

(1) 버블 정렬은 인접한 위치에 있는 두 숫자를 비교하고, 선택 정렬은 최대값 또는 최소값을 찾기 위해 비교합니다.
(2) 각 비교 라운드가 끝난 후 버블 정렬에서는 위치가 올바르지 않으면 위치를 변경해야 합니다. 선택 정렬에서는 각 비교 라운드마다 한 번만 위치를 변경하면 됩니다.

(3) 버블 정렬에서는 위치를 찾기 위해 숫자를 사용합니다. 선택 정렬 주어진 위치에서 숫자를 찾는 것입니다.

더 많은 Java 관련 기술 기사를 보려면

Java Development Tutorial

칼럼을 방문하세요.

위 내용은 선택 정렬과 버블 정렬의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.