>  기사  >  Java  >  자바의 쉘 정렬

자바의 쉘 정렬

WBOY
WBOY원래의
2024-08-30 15:32:33378검색

셸 정렬은 자바 프로그래밍 언어를 사용하여 주어진 숫자나 배열을 정렬하는 알고리즘입니다. 요구 사항에 따라 요소를 정렬하는 삽입 정렬 알고리즘을 기반으로 합니다. 나누어진 숫자를 이용한 정렬 요소로, 서로 멀리 떨어져 있는 요소들을 비교합니다. 자바 언어를 이용하여 오름차순이나 내림차순으로 요소를 설정하는 알고리즘입니다. 이는 요소의 분할된 배열이며 java를 사용하여 한 요소를 다른 고유 요소와 비교합니다. 서로 멀리 떨어져 있는 두 요소를 비교하는 정렬 절차입니다. 쉘 정렬은 삽입 정렬 방법을 일반화하여 배열 요소를 정렬하는 것입니다.

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

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

구문

Java를 이용한 쉘 정렬 구문은 아래와 같습니다.

int array_length = shell_array.length;
for (int elemnt_gap = array_length / 2; elemnt_gap > 0; elemnt_gap = elemnt_gap /2)
{
int j, i;
for ( i = elemnt_gap; i < array_length; i += 1)
{
int temprary_elemnt = shell_array[i];
for ( j = i; j >= elemnt_gap && shell_array[j - elemnt_gap] > temprary_elemnt; j -= elemnt_gap)
shell_array[j] = shell_array[j - elemnt_gap];
shell_array[j] = temprary_elemnt;
}
}

설명:

  • 'array_length'는 쉘 정렬을 위해 주어진 배열의 길이입니다.
  • ” elemnt_gap” 변수를 사용하여 두 요소 사이에 간격을 만들 수 있습니다.
  • 배열 요소의 변수를 탐색하려면 "for 루프"를 사용하세요.
  • "temprary_elemnt"는 배열 요소를 정렬하는 데 사용됩니다.
  • 그러면 오름차순으로 쉘 정렬을 시작할 수 있습니다.

Java에서 쉘 정렬은 어떻게 작동하나요?

  • Java에서 기본 클래스를 만듭니다.
public class Shell{ … }
  • 배열 변수를 사용한 쉘 정렬 방법을 만듭니다.
int shellSort(int shell_array[]) { … }
  • 주어진 필수 배열에 대한 배열 길이를 만듭니다.
int array_length = shell_array.length;

배열 요소를 정렬하려면 두 요소 사이에 간격을 만드세요.

for (int elemnt_gap = array_length / 2; elemnt_gap > 0; elemnt_gap = elemnt_gap /2) {
write shell sort algorithm here…
}

쉘 정렬 알고리즘을 "for 루프" 안에 넣습니다.

이 알고리즘은 배열 요소를 테이블 형식으로 정렬합니다. 작은 요소는 열의 왼쪽에 배치되고, 큰 숫자는 열의 오른쪽에 배치됩니다.

for (int elemnt_gap = array_length / 2; elemnt_gap > 0; elemnt_gap = elemnt_gap /2) {
int j, i;
for ( i = elemnt_gap; i < array_length; i += 1) {
int temprary_elemnt = shell_array[i];
int j;
for (j = i; j >= elemnt_gap && shell_array[j - elemnt_gap] > temprary_elemnt; j -= elemnt_gap)
shell_array[j] = shell_array[j - elemnt_gap];
shell_array[j] = temprary_elemnt;
}
}
return 0;

메인 메소드를 생성하고 정렬 요소를 반환합니다.

public static void main(String args[]) {
int shell_array[] = { 1, 4, 5, 2, 3 };
Shell shell = new Shell();
shell.shellSort(shell_array);
System.out.println("shell sort elements are: ");
int array_length = shell_array.length;
for (int i = 0; i < array_length; ++i)
System.out.print(shell_array[i] + " ");
System.out.println();
}

다음은 다양한 예입니다.

예 #1: 단일 숫자 값

코드:

import java.util.Arrays;
public class Shell {
int shellSort(int shell_array[]) {
int array_length = shell_array.length;
int j, i;
for (int elemnt_gap = array_length / 2; elemnt_gap > 0; elemnt_gap = elemnt_gap /2) {
for (i = elemnt_gap; i < array_length; i += 1) {
int temprary_elemnt = shell_array[i];
for ( j = i; j >= elemnt_gap && shell_array[j - elemnt_gap] > temprary_elemnt; j -= elemnt_gap)
shell_array[j] = shell_array[j - elemnt_gap];
shell_array[j] = temprary_elemnt;
}
}
return 0;
}
public static void main(String args[]) {
int shell_array[] = { 8, 1, 4, 5, 2, 6, 3, 9, 7};
System.out.println("given array elements are : ");
System.out.println(Arrays.toString(shell_array));
Shell shell = new Shell();
shell.shellSort(shell_array);
System.out.println("shell sort elements are : ");
int array_length = shell_array.length;
for (int i = 0; i < array_length; ++i)
System.out.print(shell_array[i] + " ");
}
}

출력:

자바의 쉘 정렬

예 #2: 이중 숫자 값

코드:

import java.util.Arrays;
public class Shell {
int shellSort(int shell_array[]) {
int array_length = shell_array.length;
int j, i;
for (int elemnt_gap = array_length / 2; elemnt_gap > 0; elemnt_gap = elemnt_gap /2) {
for (i = elemnt_gap; i < array_length; i += 1) {
int temprary_elemnt = shell_array[i];
for ( j = i; j >= elemnt_gap && shell_array[j - elemnt_gap] > temprary_elemnt; j -= elemnt_gap)
shell_array[j] = shell_array[j - elemnt_gap];
shell_array[j] = temprary_elemnt;
}
}
return 0;
}
public static void main(String args[]) {
int shell_array[] = { 81, 17, 44, 58, 23, 69, 32, 90, 75};
System.out.println("given array elements are : ");
System.out.println(Arrays.toString(shell_array));
Shell shell = new Shell();
shell.shellSort(shell_array);
System.out.println("shell sort elements are : ");
int array_length = shell_array.length;
for (int i = 0; i < array_length; ++i)
System.out.print(shell_array[i] + " ");
}
}

출력:

자바의 쉘 정렬

예 #3: 여러 숫자 값

코드:

import java.util.Arrays;
public class Shell {
int shellSort(int shell_array[]) {
int array_length = shell_array.length;
int j, i;
for (int elemnt_gap = array_length / 2; elemnt_gap > 0; elemnt_gap = elemnt_gap /2) {
for (i = elemnt_gap; i < array_length; i += 1) {
int temprary_elemnt = shell_array[i];
for ( j = i; j >= elemnt_gap && shell_array[j - elemnt_gap] > temprary_elemnt; j -= elemnt_gap)
shell_array[j] = shell_array[j - elemnt_gap];
shell_array[j] = temprary_elemnt;
}
}
return 0;
}
public static void main(String args[]) {
int shell_array[] = { 888, 1, 44, 5573, 24, 6, 543, 901, 7000};
System.out.println("given array elements are : ");
System.out.println(Arrays.toString(shell_array));
Shell shell = new Shell();
shell.shellSort(shell_array);
System.out.println("shell sort elements are : ");
int array_length = shell_array.length;
for (int i = 0; i < array_length; ++i)
System.out.print(shell_array[i] + " ");
}
}

출력:

자바의 쉘 정렬

설명:

  • 주어진 여러 종류의 수치를 확인할 수 있습니다.
  • 쉘 정렬은 요소 간의 차이를 만듭니다.
  • 그런 다음 배열을 오름차순으로 정렬합니다.

결론

  • Java의 쉘 정렬은 사용자 요구 사항에 따라 배열 요소를 정렬하는 데 도움이 됩니다.
  • 웹 애플리케이션을 정리하고 간단하며 이해하기 쉽게 만듭니다.
  • 셸 정렬은 복잡하지 않게 데이터를 정렬하여 사용자 친화적인 애플리케이션을 만듭니다.

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

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