Java의 순열 설명 [코딩 예제 포함]

게시 됨: 2020-11-24

JAVA는 1995년 Sun Microsystems의 James Gosling에 의해 개발되었습니다. JAVA를 사용하여 개발자는 Linux, Windows 및 macOS 기반 운영 체제를 비롯한 거의 모든 플랫폼에서 실행할 수 있는 안정적이고 안전하며 탄력적인 응용 프로그램을 만들 수 있습니다.

JAVA(WORA라고도 함) Write Once, Run Always 속성은 이미 한 번 만족스럽게 컴파일된 코드를 다시 컴파일할 필요도 없습니다. JAVA의 이러한 다용성은 내장된 복잡한 논리 및 수학 기능을 거의 모든 유형의 교차 플랫폼 응용 프로그램에 통합하는 데 이상적인 언어입니다.

다른 대안(또는 인기 있는) 웹 개발 환경과 달리 JAVA를 사용하여 웹 앱을 개발하는 이점은 지속적인 애플리케이션 이점의 세 가지 주요 기둥, 즉 다음으로 확장됩니다.

  1. JAVA 구문은 배우기 쉽고 적응하기 쉬우며 모든 속도와 복잡성 수준의 코더에게 적합합니다. 따라서 JAVA는 인력이 자주 변경되는 개발 팀에게 안전한 선택입니다. 새로운 리소스가 공통 개발 플랫폼(JAVA)에 맞춰지는 데 걸리는 시간은 업계에서 가장 짧은 시간 중 하나입니다.
  2. JAVA는 접근 방식이 완전히 모듈화되고 개발자에게 기능적으로 재사용 가능한 코드 청크를 생성할 수 있는 기능을 제공하여 노력을 줄이는 고급 객체 지향 프로그래밍 언어입니다. 내장 함수의 방대한 라이브러리는 다른 3차 플러그인 또는 컴파일러 추가 기능, 스크립트 등에 대한 종속성을 줄여 JAVA에 구현 시간을 최소화합니다.
  3. JAVA는 위에서 논의한 바와 같이 플랫폼 독립적이기 때문에 모든 세계의 최고를 혼합합니다. JAVA로 개발된 웹 애플리케이션은 기능 손실 없이 한 운영 체제에서 다른 운영 체제로 쉽게 이동할 수 있으며 모든 개발 환경에서 소유할 수 있는 귀중한 유틸리티입니다.

JAVA를 웹용 개발 플랫폼으로 수익성 있게 만드는 측면 중 하나는 최소한의 추가 기능으로 내장 함수를 호출함으로써 거의 모든 수학적 또는 논리적 명령을 수행하기 위해 최소한의 구현 종속성 수학적으로 건전한 구문 을 충분히 활용할 수 있습니다. 사용자 정의.

코드에서 이러한 유연성의 가장 밝은 예 중 하나는 JAVA에서 순열 을 수행하는 기능입니다. 더 구체적으로는 특정 문자열에서 사용 가능한 모든 문자의 가능한 모든 순열을 진정으로 무작위화하고 찾는 기능입니다.

이 가이드 자습서에서는 문자열의 "추적된" 위치에 문자열의 첫 번째 문자를 저장하고 다른 모든 변수와 다른 변형을 무작위화하기 위해 generatePermutation() 함수를 호출하여 JAVA에서 이 순열을 수행하는 방법을 배웁니다. 문자열의 문자.

읽기: Java 인터뷰 질문 및 답변

목차

Java의 순열 - 역추적 알고리즘의 개념

JAVA에서 이러한 순열 문제에 대한 해결책을 찾으려면 먼저 웹 개발 커뮤니티에서 추적 알고리즘은 주어진 문자열의 한 문자를 주기적으로 수정하고 다른 모든 문자의 가능한 모든 순열과 결합하고 문자열의 모든 위치에 있는 문자로 이 프로세스를 개별적으로 반복하여 최대값에 도달하는 재귀 프로세스입니다. (및 가능한 모든) 해당 문자열의 변형 수.

JAVA의 이 순열 알고리즘은 3개의 문자가 있는 주어진 문자열의 컨텍스트에서 더 쉽게 이해할 수 있습니다. 주어진 문자열의 이 세 문자가 A, B, C라고 가정해 보겠습니다.

JAVA에서 이 순열 을 수행하는 첫 번째 단계 는 하나의 문자를 수정하는 것으로 시작한 다음(항상 첫 번째 위치에서 사용 가능한 문자를 수정하는 것으로 시작함) 나머지 모든 문자를 원본( 고정) 문자.

예를 들어, ABC 문자열 예에서 우리는 문자 A ( ABC 문자열의 그런 다음 ABC , BAC CBA 조합에 도달합니다 .

다음 단계는 문자열의 다음 위치에 있는 문자(이 경우 문자열의 두 번째 위치에 있는 문자 B )에서 발견된 문자를 유사하게 " 결국, 우리는 가능한 모든 순열완전한 세트에 도달할 때까지 달성된 각 수준의 무작위로 이 단계를 계속 반복할 것입니다.

알파벳

ACB

BAC

BCA

CBA

택시

이 기사의 끝에 있는 샘플 코드/원하는 출력 섹션에서 JAVA에서 순열을 수행하려는 이 시도를 읽기 쉬운 코드로 변환하여 순열이 실시간으로 계산되는 것을 볼 것입니다.

JAVA에서 순열 수행 — 역추적 및 교환을 위한 재귀 알고리즘

임의의 문자열을 취하고 JAVA에서 철저한 순열을 수행하는 프로세스의 간결한 요약은 다음과 같은 단계별 재귀 알고리즘으로 설명할 수 있습니다.

  1. 문자열 정의 – 먼저 문자열을 정의합니다. 임의의 문자열을 입력 변수로 허용하도록 항상 선택할 수 있지만 목적과 노력의 명확성을 위해 이 예에서는 사전 정의된 문자열 ABC를 사용합니다.
  2. 문자 수정 – 한 문자를 수정합니다(첫 번째 위치의 문자부터 시작하여 나머지 모든 문자와 계속 교체).
  3. generatePermutation() – 나머지 모든 문자에 대해 generatePermutation() 함수의 출력을 호출하고 사용합니다.
  4. 재귀적 역추적 – "역추적" 알고리즘을 수행하고 코드가 문자열의 끝에 도달할 때까지(현재 예에서는 C까지) 재귀적으로 문자를 교환합니다.

JAVA에서 순열 수행 — 샘플 코드:

공개 클래스 PermuteString {

// 위치 i의 문자를 위치 j의 모든 문자로 바꾸는 함수 정의

공개 정적 문자열 swapString(문자열 a, int i, int j) {

// 문자열의 고정 문자에 대한 문자 정의

char[] b =a.toCharArray();

문자 채널;

// 다음 단계에서 스왑 수행

채널 = b[i];

b[i] = b[j];

b[j] = ch;

반환 String.valueOf(b);

}공개 정적 무효 메인(String[] 인수)

{

//기본 문자열 ABC 정의

문자열 str = "ABC";

//문자열 길이 계산

정수 len = str.length();

//모든 랜덤화 출력

System.out.println("다음은 ABC 문자열의 가능한 모든 순열입니다: ");

생성순열(str, 0, len);

}

//문자열의 가능한 모든 순열을 생성하는 함수 정의

public static void generatePermutation(String str, int start, int end)

{

// 모든 순열 출력

if (시작 == 끝-1)

System.out.println(str);

또 다른

{

for (int i = 시작, i < 끝, i++)

{

//문자열을 교환할 문자 수정

str = swapString(str, 시작, i);

// 나머지 모든 문자에 대해 재귀적으로 generatePermutation() 함수를 호출합니다. generatePermutation(str,start+1,end);

// 문자를 다시 바꾸기 위해 역추적 알고리즘을 수행합니다.

str = swapString(str, 시작, i);

}

}

}

}

JAVA에서 순열 수행 — 샘플 코드에서 파생된 출력:

이 샘플을 컴파일하고 실행할 때 원하는 출력은 다음과 같아야 합니다.

다음은 문자열 ABC의 가능한 모든 순열입니다.

알파벳

ACB

BAC

BCA

CBA

택시

필독: 흥미로운 Java 프로젝트 및 주제

결론

JAVA에서 순열을 수행하는 데 이 튜토리얼이 유용하기를 바랍니다.

Java, OOP 및 전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9 + 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

미래의 직업을 위한 준비

업계에서 신뢰할 수 있는 학습 - 업계에서 인정하는 인증.
더 알아보기