基本的なソートアルゴリズムの概要+ LeetCode_75。色分類

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/all_about_WZY/article/details/102763914

説明タイトル:
、赤、白、青、アレイのn個の要素の総数、in situでそれらをソートし、同じ色を持つように、隣接する素子と赤、白、青の順に配置さを考えます。

この問題は、我々は、赤、白、青を表す0、1、2の整数を使用します。

注意:
あなたはこの質問を解決するために、ソート機能のコードベースを使用することはできません。

例:

入力:[2,0,2,1,1,0]
出力:[0,0,1,1,2,2]

1、バブルソート

class Solution {
public:
    void sortColors(vector<int>& nums) {
        if(nums.empty())
            return ;
        int n=nums.size();
        for(int i=n-1;i>0;i--){
            bool flag=false;//标记,如果本轮没发生交换,则有序,不需要再排
            for(int j=n-1;j>n-1-i;j--){//每次都是从最后往前比较
                if(nums[j]<nums[j-1]){
                    flag=true;
                    swap(nums[j],nums[j-1]);
                }
            }
            if(flag==false)
                return ;
        }
    }
};

ここに画像を挿入説明

おすすめ

転載: blog.csdn.net/all_about_WZY/article/details/102763914