数组中的重复元素删除
作者:
一笑奈何
,
2019-05-22 10:06:16
,
所有人可见
,
阅读 1181
例 数组[2,3,5,2,5,3,6,9,11,6]
删除重复元素后
[2,3,5,6,9,11]
时间复杂度O(n2)
//删除数组中的重复元素
#include<iostream>
using namespace std;
#define FLAG -1
void pug(int a[], int len)
{
int i, j;
int lent = len;
for (i = 0; i < lent; i++) //数组第一个元素开始循环
{
if (a[i] != FLAG)
{
for (j = i + 1; j < lent; j++) //数组第二个元素开始,用于与它前一个元素比较
{
if (a[j] == a[i]) //找到和a[i]的重复值并标记
a[j] = FLAG;
}
}
}
for (i = 0; a[i] != FLAG; i++); //找到第一个标记
for (j = i + 1; j < lent;) //删除数组中的标记,即移动位置
{
if (a[j] != FLAG)
{
a[j++] = a[i++];
}
else
{
j++;
}
len = i; //更新数组元素个数
}
}