實現方式:
采用插值的方法。
如:{1,2,3,4} 把2 插入到1中 得到結果為 1,2 2,1 之後采取遞歸的方式再把3 插入到 1,2 2,1 兩個數組中。。。
結果為:
4 3 2 1,3 4 2 1,3 2 4 1,3 2 1 4
4 2 3 1,2 4 3 1,2 3 4 1,2 3 1 4
4 2 1 3,2 4 1 3,2 1 4 3,2 1 3 4
4 3 1 2,3 4 1 2,3 1 4 2,3 1 2 4
4 1 3 2,1 4 3 2,1 3 4 2,1 3 2 4
4 1 2 3,1 4 2 3,1 2 4 3,1 2 3 4
代碼如下:
/// <summary>
/// 插入對象v到對象數組o中
/// </summary>
/// <param name="o">目標對象數組</param>
/// <param name="v">插入值</param>
/// <param name="lb">展現控件</param>
/// <param name="size">源數組的長度,判斷何時對展現控件賦值</param>
/// <returns>查數之後的結果集</returns>
public string[] insertVal(object [] o,object v,ListBox lb,int size)
{
int len=o.Length ;
object[] tep=new object[len+1];
string [] result=new string[len+1];
for(int i=0;i<len+1;i++)
{
for(int j=0;j<len;j++)
{
tep[j]=o[j];
}
moveVal(ref tep,i,len);
tep[i]=v;
string s="";
for (int k = 0; k<len+1;k++)
{
s=s+tep[k]+" ";
}
s=s.Substring(0,s.Length-1);
if(tep.Length==size)
lb.Items.Add(s);
result[i]=s;
}
return result;
}
/// <summary>
/// 移動數組,起始位置數據依次順移到截止位置
/// </summary>
/// <param name="o">源數組</param>
/// <param name="start">起始位置</param><