>  기사  >  php教程  >  Java 버블 정렬과 선택 정렬의 차이점에 대한 심층 설명

Java 버블 정렬과 선택 정렬의 차이점에 대한 심층 설명

高洛峰
高洛峰원래의
2016-12-19 13:32:261297검색

버블 정렬
정렬할 배열을 반복해서 방문하여 두 요소를 한 번에 비교하고 순서가 잘못된 경우 교체합니다. 더 이상 교환이 필요하지 않을 때까지 어레이 방문 작업이 반복됩니다. 이는 어레이가 정렬되었음을 의미합니다.
코드는 다음과 같습니다.

public class nums {
     public static void main(String[] args){
         int []nums = {5,4,3,2,1};
         for(int i = 0; i < nums.length; i++){
             for(int j = 0; j < nums.length-i-1; j++){
                 if(nums[j] > nums[j+1]){
                     int temp = nums[j];
                     nums[j] = nums[j+1];
                     nums[j+1] = temp;
                 }
             }
             for(int x = 0;x < nums.length;x++){
                  System.out.print(nums[x]+",");
              }
             System.out.print("\n");
         }
     }
 }

각 비교 라운드 후의 출력은 다음과 같습니다.

1 4,3,2,1,5,
2 3,2,1,4,5,
3 2,1,3,4,5,
4 1,2,3,4,5,
5 1,2,3,4,5,

버블 정렬의 알고리즘 흐름은 다음을 통해 명확하게 이해할 수 있습니다. 산출.
선택 정렬
각 단계에서 정렬할 데이터 요소 중에서 가장 작은(또는 가장 큰) 요소가 선택되고 정렬할 모든 데이터 요소가 정렬될 때까지 정렬 순서의 끝에 순서가 배치됩니다. 정렬되었습니다.
코드는 다음과 같습니다.

public class nums {
     public static void main(String[] args){
         int []nums = {5,4,3,2,1};
         for(int i = 0; i < nums.length; i++){
             for(int j = 0; j < nums.length; j++){
                 if(nums[i] < nums[j]){
                     int temp = nums[i];
                     nums[i] = nums[j];
                     nums[j] = temp;
                 }
             }
             for(int x = 0;x < nums.length;x++){
                  System.out.print(nums[x]+",");
              }
             System.out.print("\n");
         }
     }
 }

매 비교 라운드마다 nums[i]를 배열의 각 요소와 비교하는 코드를 보면 알 수 있습니다.
각 비교 라운드 후의 출력은 다음과 같습니다.

1 5,4,3,2,1,
2 4,5,3,2,1,
3 3,4,5,2,1,
4 2,3,4,5,1,
5 1,2,3,4,5,

출력 결과에서 버블 정렬과의 알고리즘 차이를 쉽게 확인할 수 있습니다.


자바 버블정렬과 선택정렬의 차이점에 대한 더 자세한 설명은 PHP 중국어 홈페이지를 참고해주세요!


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