C#调整数组顺序,让奇数位于偶数前面的算法的代码
admin
2023-02-17 20:00:07
0

写内容之余,把写内容过程中比较重要的内容记录起来,如下的资料是关于C#调整数组顺序,让奇数位于偶数前面的算法的内容,希望对码农们有用。

#region 调整数组顺序使奇数位于偶数前面
class Reorder
{
private List _array;
private RecorderOperator _op;

public List array   
{  
    get { return _array; }  
    set { _array = value; }  
}  
public RecorderOperator op  
{  
    get { return _op; }  
    set { _op = value; }  
}  
public Reorder(List array, RecorderOperator op)  
{  
    _array = array;  
    _op = op;  
}  
public Reorder() { }  

public void ReorderArray()  
{  
    int length = array.Count;  
    int start = 0, end = length - 1;  
    while (start < end)  
    {  
        while (start < end && !op.Operator(array[start]))  
            start++;  
        while (start < end && op.Operator(array[end]))  
            end--;  
        if (start < end)  
        {  
            int temp = array[start];  
            array[start] = array[end];  
            array[end] = temp;  
        }  
    }  
}  

public void Print()  
{  
    array.ForEach(a=>Console.Write(a+"  "));  
    Console.WriteLine();  
}  

}
class RecorderOperator
{
public virtual bool Operator(int n)
{
return false;
}
}
class ConcreteRecorderOperator1:RecorderOperator
{
public override bool Operator(int n)
{
return (n & 0x1)==0;
}
}
class ConcreteRecorderOperator2 : RecorderOperator
{
public override bool Operator(int n)
{
return n%3!=0;
}
}
#endregion
class Test{
public void ReorderTest()
{
RecorderOperator op1 = new ConcreteRecorderOperator1();
Reorder reorder = new Reorder(new List{2,3,4,9,5},op1);
Console.WriteLine("所有奇数位于数组的前半部分,所有偶数位于数组的后半部分");
reorder.Print();
reorder.ReorderArray();
reorder.Print();
RecorderOperator op2 = new ConcreteRecorderOperator2();
reorder.op = op2;
reorder.ReorderArray();
Console.WriteLine("能被3整除的数在前,不能被3整除的数在后");
reorder.Print();
}
}
class Program
{

static void Main(string[] args)  
{  
    Test t = new Test();  
    t.ReorderTest();  

}  

}

相关内容

热门资讯

玩家最新攻略“酉阳大贰.究竟有... 玩家最新攻略“酉阳大贰.究竟有挂吗?”必胜开挂神器您好,酉阳大贰这个游戏其实有挂的,确实是有挂的,需...
【第一资讯】“万人玩麻将.可以... 有 亲,根据资深记者爆料万人玩麻将是可以开挂的,确实有挂(咨询软件无需打...
我来教教您“丫丫衡阳字牌.开挂... 我来教教您“丫丫衡阳字牌.开挂器?”太坑了原来有挂您好,丫丫衡阳字牌这个游戏其实有挂的,确实是有挂的...
最新民调:赖清德仍未脱困,岛内... 海峡导报综合报道 “台湾民意基金会”最新民调表明,四成三台湾民众赞同赖清德处理政事的方式,四成九不赞...
玩家最新攻略“非凡卡五星.辅助... 您好:非凡卡五星这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游...
云南兰坪县企业向澜沧江支流倾倒... 澎湃新闻记者 熊强12月9日,网友反映云南怒江州兰坪县河西乡有企业向澜沧江支流倾倒工业废渣,引发关注...
【今日要闻】“闲来贵州麻将.辅... 有 亲,根据资深记者爆料闲来贵州麻将是可以开挂的,确实有挂(咨询软件无需...
【第一资讯】“微信拼三张.辅助... 【第一资讯】“微信拼三张.辅助开挂神器?”其实是有挂您好,微信拼三张这个游戏其实有挂的,确实是有挂的...
终于懂了“琼雀海南麻将.怎么装... 网上科普关于“琼雀海南麻将有没有挂”话题很是火热,小编也是针对琼雀海南麻将作*弊开挂的方法以及开挂对...
终于明白“阿道夫十三水.开挂神... 网上科普关于“阿道夫十三水有没有挂”话题很是火热,小编也是针对阿道夫十三水作*弊开挂的方法以及开挂对...