美文网首页
2_17三色排序

2_17三色排序

作者: X_Y | 来源:发表于2017-09-06 17:03 被阅读12次

有一个只由0,1,2三种元素构成的整数数组,请使用交换、原地排序而不是使用计数进行排序。

给定一个只含0,1,2的整数数组A及它的大小,请返回排序后的数组。保证数组大小小于等于500。

测试样例:
输入:[0,1,1,0,2,2],6
返回:[0,0,1,1,2,2]

class ThreeColor {
public:
    void swap(vector<int> &A, int i, int j)
    {
        int temp = A[i];
        A[i] = A[j];
        A[j] = temp;
    }
    const static int first = 0, mid = 1, last = 2;
    vector<int> sortThreeColor(vector<int> A, int n) {
        // write code here
        int cmp_val = 1;
        int p_first = 0;
        int p_last = n-1;
        int p_curr = 0;
        for(int i=0; i<n; i++){
            switch(A[p_curr])
            {
                case first:
                    swap(A, p_curr++, p_first++);
                    break;
                case mid:
                    ++p_curr;
                    break;
                case last:
                    swap(A, p_curr, p_last--);
                    break;
                default:
                    break;
            }
        }
        return A;
    }
};

相关文章

  • 2_17三色排序

    有一个只由0,1,2三种元素构成的整数数组,请使用交换、原地排序而不是使用计数进行排序。 给定一个只含0,1,2的...

  • 三色排序

    题目 有一个只由0,1,2三种元素构成的整数数组,请使用交换、原地排序而不是使用计数进行排序。给定一个只含0,1,...

  • 第15周

    1计算零件数 2走台阶 3将数据按照奇偶排序 4三色球分组 5同构数

  • 三色及三色以上的猫是母猫

  • 俏皮可爱的三色堇剪纸窗花,带给你思念和快乐

    三色堇是欧洲常见的野花物种,是冰岛、波兰的国花。它的花朵通常有紫、白、黄三色,故名三色堇。除了三色堇这个名字,他还...

  • 2018 流行色紫色的穿搭 学会色彩搭配心情很美丽

    先说紫色与黑白灰三色的搭配 紫色和黑白灰三色的搭配 一般黑白灰三色都白搭 不会出错 所以紫色和黑白灰三色是最保险的...

  • 更改——三色堇

    红色的三色堇象征着思念、想念,紫色三色堇寓意无条件的爱,黄色的三色堇象征着喜忧参半的寓意。三色堇的通用花语表达的是...

  • 三色标记原理,我给应聘者问懵了...

    摘要:知道三色标记吗?是红黄蓝三色标记吗? 本文分享自华为云社区《从三色标记说开去[https://bbs.hua...

  • 垃圾回收器串讲及 HotSpot 的细节实现

    并发标记与三色标记 三色标记 在三色标记法之前有一个算法叫 Mark-And-Sweep(标记清除)。这个算法会设...

  • DJ他爬爬起

    尕三色

网友评论

      本文标题:2_17三色排序

      本文链接:https://www.haomeiwen.com/subject/rnjvjxtx.html