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

}  

}

相关内容

热门资讯

特朗普预警9月政府“停摆”,美... 一国总统公开预警自家联邦政府即将“停摆”,这种魔幻剧情又双叒叕要在华盛顿上演?当地时间7月22日,特...
视频丨2026年APEC数字和... 昨天(23日),2026年亚太经合组织数字和人工智能部长会议在四川成都举行。本届会议的主题为“数字和...
海南商发二期发射区土建完工,建... 7 月 24 日消息,海南商发今日宣布,海南商业航天发射场二期发射区建设项目土建工作完成,全面转入设...
菲律宾,没有以色列的命,得了以... 菲律宾,马尼拉。美国国务卿鲁比奥来了。菲律宾期盼已久的“救星”来了。菲律宾认为的“阳光”来了。从机场...
服务器盛会东莞启幕,松山湖软硬... 7月23日至24日,“智算筑基 融链共赢——2026年服务器产业供需对接活动”在东莞举行。作为系列配...
面向6G通信、高端安检、精准医... 太赫兹作为“电磁波段最后一块未开垦之地”,近年在超快光电子、低尺度半导体技术的推动下,逐步从实验室走...
获得全球最高奖项的中国数学家,... 一个喜欢玩梗的二次元大佬,竟然站上了数学界最高荣誉的领奖台。他就是今年的菲尔兹奖得主之一,邓煜。另一...
单向空间杭州旗舰店8年后谢幕,... 去年12月,单向空间杭州乐堤港店员工回应闭店谣言,称“没有收到任何闭店通知”。不到一年,停止营业的消...
带娃家长刷不到下铺,算法不该把... 据新华社的报道,一位宝妈带4岁娃要从昭通去杭州南,在12306上购票时反复被分到上铺,一天内取消三次...
安徽一高标准农田电机出水异常,... 近日,安徽省淮北市濉溪县百善镇丁楼村村民向《都市现场》爆料称:村里2023年建成的高标准农田配套电机...