删除数组中重复整数

 设计一个算法在一个包含有n个整数的数组a中,删除多余的重复整数。

其思路是逐步扩大不重复区。算法开始假设a[0]为不重复区的唯一一个元素,用k指示,k永远指示不重复区的最后一个数据的索引。然后用i=1,2,....,n-1检测后面的每一个整数是否与不重复区中的整数有重复,若没有重复,将该整数放到不重复区的末尾,同时更新k(k+1,把该整数移动到k位置);若有重复则i+1继续检测下一个整数。

int delRedundance(int a[], int n)
{
	int i, j, k=0;
	for (i = 1; i < n; i++)
	{
		for (j = 0; j <= k; j++)
			if (a[i] == a[j]) break;
		if (j > k&&++k != i) 
			a[k] = a[i];
	}
	for (i = 0; i <= k; i++) cout << a[i] << endl;
	return k + 1;
}
原文地址:https://www.cnblogs.com/oneDongHua/p/14264040.html