이 기사의 예는 참조를위한 Java 배열 및 구성 알고리즘의 특정 코드를 공유합니다. 특정 내용은 다음과 같습니다
패키지 Beanutil; import java.util.arraylist; import java.util.list; import com.work.core.exception.ourexception;/** * 통계적 통계 * @authmingjie * @Date 2009-1-1 01:22:19 PM */public class _2_OF_STATIONY {/public class _2_OF_STATISONY SANY SUNYTHEE} 알고리즘 //이 프로그램의 아이디어는 배열을 열고 첨자는 1에서 m 숫자를 나타냅니다. 배열 요소의 값은 1이면 첨자를 표시합니다. // 표시된 숫자가 선택되고 0 인 경우 선택되지 않습니다. // 먼저 초기화하고 배열의 첫 번째 n 요소를 1로 설정하여 첫 번째 조합이 첫 번째 N 숫자임을 나타냅니다. // 그런 다음 배열 요소 값의 "10"조합을 왼쪽에서 오른쪽으로 스캔하고 첫 번째 "10"조합을 찾아 // "01"조합으로 바꾸고 왼쪽에서 배열의 왼쪽 끝에서 왼쪽으로 모든 "1"을 이동하십시오. // 첫 번째 "1"이 배열의 Mn 위치로 이동하면, 즉 모든 n "1"이 가장 오른쪽 끝으로 이동하면 // 마지막 조합으로 이동해야합니다. // 예를 들어, 5 : // 1 1 0 0 // 1,2,3 // 1 1 0 // 1,2,4 // 1 0 1 1 0 // 1,3,4 // 0 1 1 0 // 2,3,4 // 0 1 1 0 1 // 1,2,5 // 1 0 1 1/1,3,5 // 0 1 1 1 1 1 1 1 1 1,5 // 0 1 1 1 1 // 1 1 1 1 1,5 // // 1,4,5 // 0 1 1 1 1 // 2,4,5 // 0 0 1 1 1 // 3,4,5 Public STATIC VOID MAIN (String [] args) {COPY_2_OF_STATISANYTHREE S = NEW COPY_2_OF_STATISANYSHERE (); S.printanythree (); } / ** * * / public void printAnythree () {int [] num = new int [] {1,2,3,4,5,6}; print (combine (num, 3)); } / ** * n 숫자에서 m 숫자를 선택하십시오 * @param a * @param m * @return * / public list combine (int [] a, int m) {int n = a.length; if (m> n) {throw new ourexception ( "오류!"+m+""+2+"보다 큰"+n+"요소 만 있습니다. } list result = new ArrayList (); int [] bs = new int [n]; for (int i = 0; i <n; i ++) {bs [i] = 0; } // 초기화 (int i = 0; i <m; i ++) {bs [i] = 1; } 부울 플래그 = true; 부울 온도 = 거짓; int pos = 0; int sum = 0; // 먼저 처음 10 조합을 찾은 다음 01이되고 동시에 배열의 왼쪽으로 왼쪽의 1을 모두 움직입니다. {sum = 0; pos = 0; tempflag = true; result.add (print (bs, a, m)); for (int i = 0; i <n-1; i ++) {if (bs [i] == 1 && bs [i+1] == 0) {bs [i] = 0; BS [i+1] = 1; pos = i; 부서지다; }} // (int i = 0; i <pos; i ++) {if (bs [i] == 1) {sum ++; }} for (int i = 0; i <pos; i ++) {if (i <sum) {bs [i] = 1; } else {bs [i] = 0; }} // 모든 1이 배열의 가장 오른쪽으로 이동했는지 확인하십시오 (int i = nm; i <n; i ++) {if (bs [i] == 0) {tempflag = false; 부서지다; }} if (tempflag == false) {flag = true; } else {flag = false; }} while (플래그); result.add (print (bs, a, m)); 반환 결과; } private int [] print (int [] bs, int [] a, int m) {int [] result = new int [m]; int pos = 0; for (int i = 0; i <bs.length; i ++) {if (bs [i] == 1) {result [pos] = a [i]; pos ++; }} 반환 결과; } private void print (list l) {for (int i = 0; i <l.size (); i ++) {int [] a = (int []) l.get (i); for (int j = 0; } system.out.println (); }}}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.