删除重复数组中重复元素

问题:把一个整形数组中重复的数字去掉

#include<stdio.h>
int delnum(int *num,int n)
{
	int i = 0;
	int j = 1;
	while(j<n)
	{
		if(num[i] != num[j])
			num[++i] = num[j];
		j++;	
	}

	return ++i;
}
void main()
{
	int num[] = {1,1,1,1,2,2,5,4,4,4,0};
	int n;
	n = delnum(num,11);
	printf("after del:\n");
	int k = 0;
	for(k;k<n;k++)
		printf("%d ",num[k]);
	printf("\n");
}
delnum函数中的遍历部分类似于快速排序中的partition方法:
参考:http://blog.csdn.net/v_JULY_v/article/details/6211155
posted @ 2011-07-07 16:56  双城记  阅读(336)  评论(1)    收藏  举报