從陣列中取n個數有多少種組合
阿新 • • 發佈:2018-11-05
private void mergeSort() { // int[] aa = {3, 5, 7, 9, 8, 4, 6, 1, 2}; // merge(aa, 0, aa.length-1); // for (int i=0;i<aa.length;i++) { // Log.e("huang",aa[i]+""); // } int[] arr={1,2,3,4}; int[] result=new int[2]; int n = 2,index = 2; int ct = 0; combine(arr,ct,result,index,n,arr.length); Log.e("huang","dgkg"+aaa); }
/* * 原始陣列:int[] arr 另一個存放下標的陣列:int[] result 取多少個數:int n 陣列result中的索引:int index 遍歷的起始位置:int start 原始陣列的長度:int arr_len*/ int aaa=0; void combine (int arr[],int start,int result[],int index,int n,int arr_len) { int ct = 0; for(ct = start;ct < arr_len-index+1;ct++){ result[index-1] = ct; if(index-1==0){ int j; aaa++; for(j = n-1;j>=0;j--) Log.e("huang",arr[result[j]]+""); } else combine(arr,ct+1,result,index-1,n,arr_len); } }