在不改变顺序表元素之间的顺序的情况下,删除其中相同的元素。要求空间复杂度为O(1)。详情见代码:
#include <iostream>
using namespace std;
typedef struct
{
int data[100];
int length;
}SqList;
void delsame(SqList &l)
{
int i, k;
int j = 0;
for (i = 1; i < l.length.i++)
{
k = 0;
while (k <= j&&l.data[k] != l.data[i])
{
k++;
}
if (k > j)
{
j++;
l.data[j] = l.data[i];
}
}
l.length = j + 1;
}
算法的复杂度为O(n^2)