首页 > 代码库 > [算法]对于已排好序的数组进行去重

[算法]对于已排好序的数组进行去重

最近项目中遇到一个场景,需要对排好序的数组进行去重(场景就是对同时获取两个频道的消息列表时做一个合并,而消息列表里的数据已经是排序好的),

经过思考后,尝试写了一个,感觉还算简洁,这里分享一下,如有有缘人可以参考,遇到问题还望指正,欢迎讨论:)

 

 1 #include <iostream> 2  3 using namespace std; 4  5 #define NUM  7 6  7 int main(){  8  9         int a[NUM] = {1, 1, 2, 2, 3, 5, 5};10 11         int *p1 = a, *p2 = a;12         while (p1 != a + NUM){ 13                 if (*p1 == *p2){14                         p1++;   15                         continue;16 17                 }else{  18                         p2++;   19                         if (p2 < p1){20                                 *p2 = *p1;21                         }       22                         continue;23                 }       24          25         26         }       27 28         int *p = a; 29         while(p <= p2){ 30                 cout << *p++ <<  ; 31          32         }       33         34         cout << endl;35 36 37 }

 

[算法]对于已排好序的数组进行去重