在不改变顺序表元素之间的顺序的情况下,删除其中相同的元素。要求空间复杂度为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)
本文介绍了一种在不改变顺序表中元素顺序的前提下删除重复元素的方法,并提供了具体实现代码。该算法的空间复杂度为O(1),时间复杂度为O(n^2)。
637

被折叠的 条评论
为什么被折叠?



