您的位置:首页 > 其它

Sort function 应用

2016-03-24 21:10 267 查看
题目描述

(线性表)假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。

输入

输入长度n:5

输入数据:1 2 5 6 8

输入长度m:5

输入数据:3 4 7 9 10

输出

10 9 8 7 6 5 4 3 2 1

样例输入

4

7 9 10 11

4

8 12 13 14

样例输出

14 13 12 11 10 9 8 7

Answer

一般写法

#include<algorithm>//This is sort function header files
#include<iostream>
using namespace std;

int main()
{
/*Define variables 定义变量*/
int m, n;
int i, j, k;
int a[100];
bool cmp(int a, int b);
/*Input*/
cin>>m;
for(i=0; i<m ; i++)
{
cin>>a[i];
}
cin>>n;
for(j=0; j<n ; j++)
{
cin>>a[m+j];
}
/*Sorting*/
sort(a, a+m+n, cmp);
/*Output*/
for(k=0; k<m+n-1 ; k++)
{
cout<<a[k]<<" ";
}
cout<<a[m+n-1]<<endl;//满足最后一位输出无空格
return 0;

}
/*从大到小排*/
bool cmp(int a, int b)
{
return a>b;
}


更简洁的写法

#include<iostream>
#include <algorithm>
using namespace std;
int main()
{int i,a,b,s[10],p;
cin>>a;//Input
for(i=0;i<a;i++)
cin>>s[i];
cin>>b;
for(i=0;i<b;i++)
cin>>s[a+i];
p=a+b;
sort(s,s+p);//Sorting
for(i=p-1;i>0;i--)//Output
cout<<s[i]<<" ";
cout<<s[0]<<endl;//最后一位无空格输出
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: