冒泡排序问题,为什么运行后结果并没有实现排序?

img


为什么运行后没有排序,检查了好几遍都是这样试了试指针交换后也是这样

参考一下如下代码!


#include <iostream>
using namespace std;
const int M = 2000005;
int n,m;
int a[M];
int size = 0;
int main()
{
    cin>>m;
    for(int i=0;i<m;i++)
    {
        int t;
        cin>>t;
        bool flag1 = false;
        for(int j=0;j<size;j++)
        {
            if(t==a[j])
            {
                flag1 = true;
                break;
            }
        }
        if(!flag1)
        {
            a[size++] = t;
        }
    }
    bool flag = true;
    while(flag)
    {
        flag = false;
        for(int i=0;i<size-1;i++)
        {
            if(a[i]>a[i+1])
            {
                swap(a[i],a[i+1]);
                flag = true;
            }
        }
    }
    for(int i=0;i<size;i++)
    {
        printf("%d ",a[i]);
    }
    return 0;    
}