> Java > java지도 시간 > 본문

Java의 선택 정렬

WBOY
풀어 주다: 2024-08-30 15:30:50
원래의
793명이 탐색했습니다.

Java의 선택 정렬은 정렬되지 않은 부분에서 가장 작은 요소를 계속 찾아 처음에 유지하는(오름차순으로 정렬하기 위해) 정렬 방법입니다. 입력 배열이 정렬될 때까지 이 프로세스가 반복됩니다. 또한 선택 정렬에서는 입력 배열을 두 개의 하위 배열로 나누어 한 배열은 정렬된 요소에 사용되고 다른 배열은 정렬되지 않은 요소에 사용됩니다. 처음에는 정렬된 하위 배열에 요소가 없습니다. 다음 섹션에서 선택 정렬 작업을 자세히 살펴보겠습니다.

Java에서 선택 정렬이 작동하는 방식

선택 정렬은 입력 배열에서 두 개의 하위 배열을 유지하는 간단한 방식으로 작동합니다. 그들은:

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

  • 정렬된 요소를 유지하기 위해 정렬된 하위 배열
  • 정렬되지 않은 요소를 유지하기 위한 정렬되지 않은 하위 배열

알고리즘

다음은 선택 정렬에 사용되는 알고리즘입니다

  1. 최소(MIN) 포인터를 위치 0으로 설정합니다.
  2. 배열의 요소 목록에서 가장 작은 요소를 찾습니다
  • 최소 요소를 위치 0으로 바꿉니다
  1. MIN 포인터를 다음 위치로 이동
  2. 입력 배열이 정렬될 때까지 이 과정을 반복하세요.

예를 들어 선택 정렬을 이해해 보겠습니다. 다음은 정렬해야 하는 입력 배열입니다. 굵은 파란색의 요소는 정렬된 배열의 일부가 됩니다.

Java의 선택 정렬

1단계: MIN 포인터를 첫 번째 위치로 설정합니다. 따라서 MIN 포인터는 15를 가리킵니다.

Java의 선택 정렬

최소: = 15

2단계: 나머지 요소와 비교하여 가장 작은 요소를 찾습니다. 15와 21을 비교하면 15가 가장 작습니다. 따라서 이 경우 가장 작은 것은 변하지 않습니다.

Java의 선택 정렬

최소: = 15

15와 6을 비교하면 6이 가장 작습니다.

Java의 선택 정렬

최소: = 6

6과 3을 비교하면 3이 가장 작습니다.

Java의 선택 정렬

최소: = 3

19가 3보다 크므로 이 경우에도 3은 더 작아집니다.

Java의 선택 정렬

최소: = 3

Java의 선택 정렬

최소: = 3

마지막으로 이번 반복에서는 3이 가장 작은 것으로 나타났습니다.

3단계: 가장 작은 요소를 위치 0의 요소와 바꿉니다.

Java의 선택 정렬

4단계: MIN 포인터를 다음 위치로 증가시킵니다.

Java의 선택 정렬

5단계: 나머지 요소와 비교하여 다음으로 가장 작은 요소를 찾습니다.

Java의 선택 정렬

최소: = 21

Java의 선택 정렬

최소: = 6

Java의 선택 정렬

최소: = 6

Java의 선택 정렬

최소: = 6

Java의 선택 정렬

최소: = 6

6단계: 가장 작은 요소를 위치 1의 요소와 바꿉니다.

Java의 선택 정렬

아래와 같이 정렬된 배열이 형성될 때까지 이 과정을 반복하세요.

Java의 선택 정렬

Java에서 선택 정렬을 구현하는 예

위에서 이미 언급했듯이 선택 정렬은 최소값을 찾아 교체하는 방식을 기반으로 합니다. 이제 Java를 이용하여 선택 정렬을 구현하는 방법을 살펴보겠습니다.

선택 정렬을 사용하여 배열의 요소를 정렬하는 Java 프로그램

코드:

import java.util.*;
public class SelSortExample {
//Method that implements Selectionsort
public static void selsort(int[] arr)
{
int n=arr.length; //length of the array
for(int i=0;i<n-1;i++)
{
int MIN=i; //set the first position as minimum
System.out.println("Sorting based on Number "+(i+1));
//Find the smallest element by comparing with the element in MIN position
for(int j=i+1;j<n;j++)
{
System.out.println("Comparing "+ arr[MIN] + " and " + arr[j]);
if(arr[j]<arr[MIN])
{
System.out.println(arr[MIN] + " is greater than " + arr[j] );
MIN=j;
}
}
//Swap the smallest element with element in MIN position
int temp=arr[i];
arr[i]=arr[MIN];
arr[MIN]=temp;
}
}
public static void main(String[] args) {
int[] arr= {15,21,6,3,19,20}; // input array
System.out.println("Elements in the array before Sorting: "+ Arrays.<em>toString</em>(arr));
<em>selsort</em>(arr);//calling the selection sort method
System.out.println("Elements in the array after Sorting: "+Arrays.<em>toString</em>(arr));
}
}
로그인 후 복사

샘플 출력:

Java의 선택 정렬

위 프로그램에는 두 가지 방법, 즉 기본 방법과 판매 정렬 방법이 있습니다. 기본 메소드는 입력 배열을 인수로 전달하는 판매 정렬 메소드를 호출합니다. 최소 요소가 식별되어 MIN이 가리키는 요소로 교체됩니다.

The selection sort can also be used where the input array is not defined in code. Let us see how it works using the below program.

Java Program to Sort the Elements using Selection Sort

Code:

import java.util.*;
public class SelectionSortExample
{
public static void main(String args[])
{
int n, i, j, tempvar;
Scanner <u>sc</u> = new Scanner(System.in); //To take the input from user
System.out.print("Enter the size of array : \n");
n = sc.nextInt();
int array[] = new int[n]; //<u>initialising</u> the array
System.out.print("Enter the elements that need to be inserted in the array : \n");
//inserting the elements to the array
for(i=0; i<n; i++)
{
array[i] = sc.nextInt();
}
System.out.print("array before Sorting: \n"+ Arrays.toString(array));
System.out.print("\nSorting begins here..\n");
for(i=0; i<n; i++)
{
for(j=i+1; j<n; j++)
{
if(array[i] > array[j])
{
tempvar = array[i];
array[i] = array[j];
array[j] = tempvar;
}
}
}
System.out.print("Array after Sorting is :\n");
for(i=0; i<n; i++)
{
System.out.print(array[i]+ " ");
}
}
}
로그인 후 복사

Sample Output:

Java의 선택 정렬

Here, the input elements given by the user will be compared with the temporary variable and swapped. The process will be repeated until a sorted array is formed.

Performance of Selection Sort

This sorting technique is used for its simplicity and certain other performance advantages over other more sorting techniques.

Java의 선택 정렬

Conclusion

The selection sort does not work efficiently on large lists as it consumes more time for comparison. Selection sort is a method in which an input array will be divided into two subarrays in order to keep them sorted and unsorted elements. The minimum element in the array will be swapped with the element in the first position, and the process continues until a sorted array is formed.

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

관련 라벨:
원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!