问题描述
N个互不相同的数,放在一个数组里每次交换两个,在遍历玩所有排列前不出现重复。how
解决方案
解决方案二:
遍历数组中元素的所有组合--全排列publicclassAllSort{int[]result;publicAllSort(int[]i){result=newint[i.length];}publicstaticvoidmain(String[]args){int[]i={1,2,3,4,5};AllSorttest=newAllSort(i);test.method(i,0,i.length);}publicvoidmethod(int[]i,intbegin,intlength){if(begin==i.length){System.out.println(Arrays.toString(result));}else{for(intk=begin;k<i.length;k++){result[begin]=i[k];//把后面的数和第一个数交换,如此每一次都是在进行n-1的全排列;swap(i,begin,k);method(i,begin+1,length);swap(i,k,begin);}}}publicvoidswap(int[]in,inti,intj){inttemp=in[i];in[i]=in[j];in[j]=temp;}}
解决方案三:
递归的不行,有循环的么?
解决方案四:
该回复于2011-03-18 14:34:06被版主删除
时间: 2024-10-16 04:17:06