首页 > 代码库 > 编程算法 - 两个升序列的相同元素 代码(C)
编程算法 - 两个升序列的相同元素 代码(C)
两个升序列的相同元素 代码(C)
本文地址: http://blog.csdn.net/caroline_wendy
两个升序列的相同元素, 需要使用两个指针, 依次遍历, 如果相等输出, 如果小于或大于, 则增加一个指针.
直到输出所有的值.
代码:
/* * main.cpp * * Created on: 2014.9.19 * Author: spike */ #include <stdio.h> int Common(int data1[], int length1, int data2[], int length2, int res[]) { if (data1 == NULL || length1 <= 0 || data2 == NULL || length2 <= 0) return -1; int i=0, j=0, k=0; while (i < length1 && j < length2) { if (data1[i] == data2[j]) { res[k++] = data1[i]; i++; j++; } else if (data1[i] < data2[j]) i++; else j++; } return k; } int main(void) { int data1[] = {1, 2, 4, 5, 6, 9, 11}; int data2[] = {2, 5, 6, 8, 12}; int length1 = sizeof(data1)/sizeof(data1[0]); int length2 = sizeof(data2)/sizeof(data2[0]); int max = length1 > length2 ? length1 : length2; int* res = new int[max]; int num = Common(data1, length1, data2, length2, res); for (int i=0; i<num; ++i) { printf("%d ", res[i]); } printf("\n"); return 0; }
输出:
2 5 6
编程算法 - 两个升序列的相同元素 代码(C)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。