生成 非递减 有序 线性表 LA,LB。将LA,LB归并为 新表LC,--且LC中同样 非值递减 排序,--输出LA,LB,LC

--生成 非递减 有序 线性表 LA,LB。
--将LA,LB归并为 新表LC,
--且LC中同样 非值递减 排序,
--输出LA,LB,LC 

/*
--生成 非递减 有序 线性表 LA,LB。
--将LA,LB归并为 新表LC,
--且LC中同样 非值递减 排序,
--输出LA,LB,LC 
*/
//#include <iostream>
//using namespace std;

#include <stdio.h>
#include <algorithm>//include sort() 排序函数 包含在c ++中 
using namespace std;//c ++中 告诉编译程序使用std命名空间 (使用c ++ 函数时候必须有)

#define size 10
//这里 线性表 可以 是 数组 或者 链表,由于按 非递减排序 显然数组更方便 

bool cmp(int a,int b)
{
	return a <= b;// 前者 <= 后者  非递减 排序
}

void print_array(int a[],int range)
{
	int i = 0;
	while(i < range)
	{
		printf("%d ",a[i ++]);
	}
	printf("\n");
} 

//test procedure
int main()
{
	int LA[size] = {4,6,12,4,
					6,7,9,11,
					13,2};
	int LB[size] = {2,4,0,3,
					6,7,5,11,
					15,2};
	int LC[size + size] = {0};//init LC
	
	
	sort(LA,LA + size,cmp);//非递减 排序LA 
	printf("LA: ");
	print_array(LA,size);  //输出 LA 
	
	sort(LB,LB + size,cmp);//非递减 排序LB
	printf("LB: ");
	print_array(LB,size);  //输出 LB 
	
	//先合并 LA,LB -> LC
	int i = 0; 
    while(i < size)
    {
    	LC[i] = LA[i];
    	LC[i + size] = LB[i ++];
	}
	
	//排序 lC 
    sort(LC,LC + 2*size,cmp);//非递减 排序LC 
	printf("LC: ");
	print_array(LC,2*size); //输出 LC 
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_47991812/article/details/121324835
今日推荐