Java의 순열 설명 [코딩 예제 포함]
게시 됨: 2020-11-24JAVA는 1995년 Sun Microsystems의 James Gosling에 의해 개발되었습니다. JAVA를 사용하여 개발자는 Linux, Windows 및 macOS 기반 운영 체제를 비롯한 거의 모든 플랫폼에서 실행할 수 있는 안정적이고 안전하며 탄력적인 응용 프로그램을 만들 수 있습니다.
JAVA(WORA라고도 함) 의 Write Once, Run Always 속성은 이미 한 번 만족스럽게 컴파일된 코드를 다시 컴파일할 필요도 없습니다. JAVA의 이러한 다용성은 내장된 복잡한 논리 및 수학 기능을 거의 모든 유형의 교차 플랫폼 응용 프로그램에 통합하는 데 이상적인 언어입니다.
다른 대안(또는 인기 있는) 웹 개발 환경과 달리 JAVA를 사용하여 웹 앱을 개발하는 이점은 지속적인 애플리케이션 이점의 세 가지 주요 기둥, 즉 다음으로 확장됩니다.
- JAVA 구문은 배우기 쉽고 적응하기 쉬우며 모든 속도와 복잡성 수준의 코더에게 적합합니다. 따라서 JAVA는 인력이 자주 변경되는 개발 팀에게 안전한 선택입니다. 새로운 리소스가 공통 개발 플랫폼(JAVA)에 맞춰지는 데 걸리는 시간은 업계에서 가장 짧은 시간 중 하나입니다.
- JAVA는 접근 방식이 완전히 모듈화되고 개발자에게 기능적으로 재사용 가능한 코드 청크를 생성할 수 있는 기능을 제공하여 노력을 줄이는 고급 객체 지향 프로그래밍 언어입니다. 내장 함수의 방대한 라이브러리는 다른 3차 플러그인 또는 컴파일러 추가 기능, 스크립트 등에 대한 종속성을 줄여 JAVA에 구현 시간을 최소화합니다.
- 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에서 철저한 순열을 수행하는 프로세스의 간결한 요약은 다음과 같은 단계별 재귀 알고리즘으로 설명할 수 있습니다.
- 문자열 정의 – 먼저 문자열을 정의합니다. 임의의 문자열을 입력 변수로 허용하도록 항상 선택할 수 있지만 목적과 노력의 명확성을 위해 이 예에서는 사전 정의된 문자열 ABC를 사용합니다.
- 문자 수정 – 한 문자를 수정합니다(첫 번째 위치의 문자부터 시작하여 나머지 모든 문자와 계속 교체).
- generatePermutation() – 나머지 모든 문자에 대해 generatePermutation() 함수의 출력을 호출하고 사용합니다.
- 재귀적 역추적 – "역추적" 알고리즘을 수행하고 코드가 문자열의 끝에 도달할 때까지(현재 예에서는 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 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.