一个数组中,存放两种状态分别是true和false,如何使其两种状态分布排列,前段true后段false,或者前false后true

解决方案 »

  1.   

    using System;class Program
    {
      static void Main()
      {
        bool[] a = { true, true, false, true, false, false };
        Array.Sort<bool>(a);       // 对数组进行排序
        foreach (bool b in a)
        {
          Console.WriteLine(b);    // 输出排序后的结果
        }
      }
    }
    /* 程序输出:
    False
    False
    False
    True
    True
    True
    */
      

  2.   

    Array.Sort<bool> 效率怎么样呢?
    如果不是0(n)可以遍历一遍,统计出来有多少个false(count),将数组的前count个元素都设为false,后面的都设为true
      

  3.   

    开什么玩笑啊直接数一下有几个true 几个false
    然后...
      

  4.   

    写一下吧int[] bin =new int[2];
    foreach (bool b in bools)//bools 就是bool的数组
      if(b)
        bin[0]++;
      else
        bin[1]++;
    int pos=0;
    while(bin[0]>0)
      bools[pos++]=true;
    while(bin[1]>0)
      bools[pos++]=false;
      

  5.   

    Array.Sort <bool>是专家群弄出来的,应该效率不比你自己写的代码低。