전체 정렬 실현
관건:array[0...n]의 전체 배열은 Perm(array,(0...n)=array[i]와 Perm(array[0...i-1,i+1n))의 조합이다.
- public class TestPerm {
- public static void main(String[] args){
- test1();
- }
- public static void test1(){
- String str = "abcde";
- char[] array = str.toCharArray();
- TestPerm.perm(array, 0, array.length);
- System.out.println("Total:"+TestPerm.count);
- }
- private static int count = 0;
- public static void perm(char[] array, int start, int end){
- if(start==end){
- count++;
- System.out.println(array); //
- return;
- }
- for (int i = start; i < end; i++) {
- swap(array, start, i);
- perm(array, start+1, end);
- swap(array, start, i);
- }
- }
-
- private static void swap(char[] array, int a, int b) {
- if(a!=b){
- array[a] = (char) (array[a]^array[b]);
- array[b] = (char) (array[b]^array[a]);
- array[a] = (char) (array[b]^array[a]);
- }
- }
- }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
양식 제출 후 제출 버튼 비활성화텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.