>Java >java지도 시간 >Java에서 버블 정렬 및 선택 정렬을 구현하는 코드를 작성하는 방법

Java에서 버블 정렬 및 선택 정렬을 구현하는 코드를 작성하는 방법

王林
王林앞으로
2023-04-20 12:55:12664검색

1. 버블 정렬

버블 정렬의 기본 아이디어는

정렬 순서를 앞에서 뒤로(아래 첨자가 작은 요소부터 시작) 처리하고 인접한 값을 비교하는 것입니다. 순서가 반대인 요소가 발견되면 요소가 교환되어 더 큰 값을 갖는 요소가 물속의 거품처럼 점차적으로 앞쪽에서 뒤쪽으로 이동하여 위로 올라갑니다.

정렬 과정에서 각 요소는 끊임없이 자신의 위치에 접근하기 때문에 비교 중에 교환이 수행되지 않으면 순서가 올바른 것입니다.

버블 정렬 알고리즘 프로세스 그림

원래 배열: 3, 9, -1, 10, 20

첫 번째 정렬 통과

(1) 3, 9, -1, 10 , 20 // 인접한 요소가 역순이면 서로 바꿉니다


(2) 3, -1, 9, 10, 20


(3) 3, -1, 9, 10, 20


( 4) 3 , -1, 9, 10, 20

2차 정렬

(1) -1, 3, 9, 10, 20 //Exchange


(2) -1, 3, 9, 10 , 20


(3) -1, 3, 9, 10, 20

세 번째 정렬

(1) -1, 3, 9, 10, 20


(2) -1 , 3, 9, 10, 20

네 번째 정렬 단계

(1) -1, 3, 9, 10, 20

버블 정렬 규칙 요약

(1) A 총 배열 크기 - 1개의 대형 루프


(2) 각 정렬 횟수가 점차 감소하고 있습니다


(3) 특정 정렬 여행에서 교환이 발생하지 않는 것으로 확인되면 버블을 종료할 수 있습니다. 일찍 정렬하세요. 이것이 최적화

import java.util.Arrays;
public class BubbleSort {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        int arr[]= {3,9,-1,10,-2};
        //第i+1趟排序,将最大的数排在最后
        int temp=0;//临时变量
        for(int i=0;i<arr.length-1;i++) {//定义第几轮排序
       	 for(int j=0;j<arr.length-1-i;j++) {
       		 if(arr[j+1]<arr[j]) {
       		  temp=arr[j];
       		 arr[j]=arr[j+1];
       		 arr[j+1]=temp;
       		 }
       		 }
        System.out.println("输出第"+(i+1)+"趟排序的结果");
        System.out.println(Arrays.toString(arr));
        }
     
        }
	}
실행 결과입니다:

첫 번째 정렬 결과를 출력합니다

[3, -1, 9, -2, 10]
두 번째 정렬 결과를 출력
[-1, 3, - 2 , 9, 10]
3차 정렬 결과 출력
[-1, -2, 3, 9, 10]
4차 정렬 결과 출력
[-2, -1, 3, 9, 10]

2. 선택 정렬 방법

정렬 아이디어:

원래 배열: 101, 34, 119, 1


1차 정렬: 1, 34, 119, 101


2차 정렬 : 1, 34, 119, 101


세 번째 정렬: 1, 34, 101, 119

지침:

1 선택 정렬의 전체 배열 크기 - 1회 정렬

2. 1회 정렬, 또 다른 루프, 루프의 규칙(코드)

  • 2.1 먼저 현재 숫자가 가장 작은 숫자라고 가정합니다

  • 2.2 그런 다음 이를 각 후속 숫자와 비교합니다. 현재 숫자보다 작은 숫자이면 최소 숫자를 다시 결정하고 첨자를 얻습니다.

  • 2.3 배열의 끝으로 순회할 때 이번 라운드의 최소 숫자와 첨자를 얻습니다.

  • 2.4 교환 [계속 코드에서]

import java.util.Arrays;
public class QuickSort {
    public static void main(String[] args) {
       //int []arr={ 8,3,2,1,7,4,6,5};
       int [] arr={101,34,109,1};
       quicksort(arr);
    }
    public static void quicksort(int []arr){
        for(int j=0;j<arr.length-1;j++) {
            int minindex=j;//假定当前下标为最小值下标
            int minnumber=arr[j];//假定当前元素为最小值
            for (int i = 1+j; i < arr.length; i++) {
                if (arr[i] < minnumber) {//若假定最小值并不是最小的
                    minnumber = arr[i];//重置minnumber
                    minindex = i;//重置minindex
                }
            }
            //将最小值交换
            arr[minindex] = arr[j];
            arr[j] = minnumber;
            System.out.println("第"+(j+1)+"轮");
            System.out.println(Arrays.toString(arr));
        }
    }
}

위 내용은 Java에서 버블 정렬 및 선택 정렬을 구현하는 코드를 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제