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);
}
}