找出一个数组中不存在于另一个数组中的元素
2010-11-07 09:48
176 查看
#include "stdio.h"
int arr1[10] = {2,2,5,5,1,8,77,55,44,32};
int arr2[10] = {2,44,54,77,32,133,65,8,88,12};
void sort(int * arr,int len)
{
int i = 0,j = 0,k = 0;
int tmp = 0;
for(i = 1; i<len; i++)
{
for(j = 0; j<i; j++)
{
if(arr[i] < arr[j])
{
tmp = arr[i];
for(k = i;k>=j;--k)
{
arr[k] = arr[k-1];
}
arr[j] = tmp;
break;
}
}
}
}
void print(int * arr,int len)
{
int i = 0;
for(i=0; i<len; i++)
{
printf("%d ",arr[i]);
}
printf("/n");
}
/*find out a1 not in a2*/
void find_dif(int * a1, int * a2, int len_1, int len_2)
{
int i = 0,j = 0,k = 0;
for(i = 0; i<len_1; i++)
{
if(a1[i]<a2[j])
{
printf("%d ",a1[i]);
}
else if(a1[i]>a2[j])
{
i--;
j++;
}
}
}
int main()
{
int len = 10;
sort(arr1,len);
sort(arr2,len);
print(arr1,len);
print(arr2,len);
find_dif(arr1,arr2,len,len);
}
int arr1[10] = {2,2,5,5,1,8,77,55,44,32};
int arr2[10] = {2,44,54,77,32,133,65,8,88,12};
void sort(int * arr,int len)
{
int i = 0,j = 0,k = 0;
int tmp = 0;
for(i = 1; i<len; i++)
{
for(j = 0; j<i; j++)
{
if(arr[i] < arr[j])
{
tmp = arr[i];
for(k = i;k>=j;--k)
{
arr[k] = arr[k-1];
}
arr[j] = tmp;
break;
}
}
}
}
void print(int * arr,int len)
{
int i = 0;
for(i=0; i<len; i++)
{
printf("%d ",arr[i]);
}
printf("/n");
}
/*find out a1 not in a2*/
void find_dif(int * a1, int * a2, int len_1, int len_2)
{
int i = 0,j = 0,k = 0;
for(i = 0; i<len_1; i++)
{
if(a1[i]<a2[j])
{
printf("%d ",a1[i]);
}
else if(a1[i]>a2[j])
{
i--;
j++;
}
}
}
int main()
{
int len = 10;
sort(arr1,len);
sort(arr2,len);
print(arr1,len);
print(arr2,len);
find_dif(arr1,arr2,len,len);
}
相关文章推荐
- 找出数组中的一个元素出现次数大于数组长度的一半的元素,若不存在返回0
- 对于一个有序数组,我们通常采用二分查找的方式来定位某一元素,请编写二分查找的算法,在数组中查找指定元素。 给定一个整数数组A及它的大小n,同时给定要查找的元素val,请返回它在数组中的位置(从0开始),若不存在该元素,返回-1。若该元素出现多次,请返回第一次出现的位置。
- java找出一个数组中出现次数最多的那个元素
- 9.11排序与查找(三)——给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素
- 面试题精选(79):取值为【1,n-1】含n个元素的整数数组至少存在一个重复数,O(n)时间内找出其中任意一个重复数
- 一个数组中,除两个元素其余都出现了两次,找出这两个元素
- 给定一个值S,在有序数组中找出两个元素A和B,使 A+B = S.
- 找出一个整型数组中元素最大值,使用面向对象方法
- java找出一个数组中出现次数最多且最大的那个元素
- 面试题———关于将一个整型数组中的所有元素组合成一个数字,并找出最小一个。
- 如何去除一个数组中与另一个数组中的值相同的元素(转)
- 整数数组中,每个元素均出现两次,除了一个元素例外,如何找出这个元素?能否设计一个线性时间的算法,且不需要额外的存储空间?
- 有一个整数数组,请编写一个函数,找出索引m和n,只要将m和n之间的元素排好序,整个数组就是有序的。注意:n-m应该越小越好,也就是说,找出符合条件的最短序列。 给定一个int数组A和数组的大小n,请
- 集合框架(一)续 向集合中添加一个集合、数组和List之间的相互转换、从集合中删除另一个集合所包含的元素
- 有15个数按从大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则打印出 “无此数”
- 给定一个值S,在有序数组中找出两个元素A和B,使 A+B = S.
- 一个数组有除了两个元素只出现一次,其他元素全部都出现了两次,请找出只出现一次的两个元素,并输出
- java找出一个数组中出现次数最多的那个元素
- leetcode-java.T015_3Sum---给定一个n个元素的数组,是否存在a,b,c三个元素,使用得a+b+c=0,找出所有符合这个条件的三元组
- 算法题:找出一个数组中相加值最大的连续序列元素