C++冒泡排序,如何忽略相同的数字

RnD*_*RnD 0 c++ sorting algorithm bubble-sort

我正在使用冒泡排序按从低到高的顺序对数组中的数字进行排序.但有一些数字是相同的,但我不需要它们打印两次.那么如何检查它是否已经打印而不是重复动作?

泡泡排序:

for(int i=0;i<n-1;i++){
        for(int j=i+1;j<n;j++){

            if(m[i]>m[j]){
                temp=m[i];
                m[i]=m[j];
                m[j]=temp;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

Vik*_*kas 5

由于数字在打印时已经排序,因此您可以存储最后打印的数字并在打印前与之进行比较.

就像是:

std::cout << m[0] << std::endl;
int last_print = m[0];

for(int i = 1; i < n; ++i)
{
  if(m[i] != last_print)
  {
    std::cout << m[i] << std::endl;
    last_print = m[i];
  }
}
Run Code Online (Sandbox Code Playgroud)