将数组中的奇数移到偶数的前面

类别: C# 查看评论

将数组中的奇数移到偶数的前面,要求1)时间复杂度o(n),2)不增加额外存储空间

static void Main(string[] args)
{
    int[] array = new int[10];
    Random r = new Random(5);
    for (int i = 0; i < array.Length; i++)
    {
        array[i] = r.Next(1, 100);
        Console.Write(array[i] + " ");
    }
    Console.WriteLine();
    Separate(array);
    for (int i = 0; i < array.Length; i++)
    {
        Console.Write(array[i] + " ");
    }
}
 
private static void Separate(int[] array)
{
    int temp;
    int len = array.Length - 1;
    for (int i = 0; i < len; )
    {
        if (array[i] % 2 == 0)
        {
            temp = array[len];
            array[len] = array[i];
            array[i] = temp;
            len--;
        }
        else
        {
            i++;
        }
    }
}

发表评论