不使用现有算法或排序技术对整数元素进行排序

时间:2015-03-22 13:07:10

标签: java c

如果我在数组中有1个核心整数元素,其随机方式只有0,1。 &安培;我想在不使用现有算法的情况下对此数组进行排序或排序方法,并使用最小的迭代。

我怎么能这样做.. 请帮帮我。

2 个答案:

答案 0 :(得分:0)

方法1:计算所有0'然后从前面设置它,然后设置1的大小 - 计数(0)次。

方法2:从数组的两端开始,然后从左边的0s到右边的0s交换,直到到达数组的中间。

while (begin < end) {
      // If find 0 at left, keep moving
      if (0 == toSort[begin]) {
        begin++;

      }
      // if a 1 occurs at left, move from right until find a zero
      else if (1 == toSort[end]) {
        end--;
      }
      // Here we found a 1 at left and 0 at right, so swap
      else {
        toSort[begin] = 0;
        toSort[end] = 1;
      }
    }

时间复杂度:O(n)。

答案 1 :(得分:0)

也许你可以计算0和1的数量并创建一个具有相同数量的0和1的新数组,但是选择你添加它们的顺序。