数列中n个整数排序
来源:互联网 发布:剑侠情缘网络经典版 编辑:程序博客网 时间:2024/06/10 01:18
题目:
数列中n个整数排序
Problem Description
设计一个包含size个数的数列,要求能够把从指定位置x开始的y个数排列成降序,并输出新的完整的数列。可将数列存放在一维数组中。
例如,原来列有10个数,值为{1,8,3,0,5,9,7,6,9,8},若要求把从第4个数开始的5个数排成降序,
则得到的新数列为{1,8,3,9,7,6,5,0,9,8}。试建立一个类LIST,来完成上述功能。
class LIST
{
public:
LIST(int a[],int len); //构造函数,用len初始化size,根据size动态分配数组存储空间,arr指向该存储空间
void sortpart(int m,int n); //将数列从第m个元素开始的n个数排成降序
void output(); //输出整个数列
~LIST(); //析构函数,释放arr指向的存储空间
private:
int size; //数列元素的个数
int *arr; //数列数组的起始指针
};
Input
输入数据有多组,每组:
第1行输入整型数列的个数n;
第2行输入整型数列各个元素的值;
第3行输入x和y,表示将超长整型数列从指定位置x开始的y个数排列成降序;
Output
Sample Input
101 4 2 7 3 8 2 8 23 63 5
Sample Output
1 4 8 7 3 2 2 8 23 6
参考代码:
#include <iostream>using namespace std;
class LIST{private: int size; int *arr; public: LIST(int a[],int len); void sortpart(int m,int n); void output(); ~LIST(); };LIST::LIST(int a[],int len){ size=len; arr=new int [size]; int i; for(i=0;i<size;i++) arr[i]=a[i];}void LIST::sortpart(int m,int n){ int i,j,t; for(i=0;i<n;i++) { for(j=m-1;j<m+n-i-2;j++) { if(arr[j]<arr[j+1]) { t=arr[j]; arr[j]=arr[j+1]; arr[j+1]=t; } } } }void LIST::output(){ int i; for(i=0;i<size;i++) cout<<arr[i]<<" "; cout<<endl;}LIST::~LIST(){ delete []arr;}
int main(){ int i,n,*a,x,y; while(cin>>n) { a=new int [n]; for(i=0;i<n;i++) cin>>a[i]; LIST w(a,n); cin>>x>>y; w.sortpart(x,y); w.output(); delete []a; } return 0;}
备注:要特别注意排序时数组的首尾位置……
- 超长数列中n个整数排序
- 数列中n个整数排序
- 超长数列中的n个整数排序,要求能够把从指定位置m开始的n个数排列成降序,并输出完整的数列
- 【C++】N 个整数的排序。
- 从n个整数中取出其中k个,排成一组有序数的排序算法
- java 输入一个整数n,根据n获取Fibonacci数列的第n个值
- 快速排序查找 N个整数中,找到前M(M<<N)个最大的数字
- 71-给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个
- 给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
- 对数组中N个整数由小到大排序的几种方法
- 堆排序示例:对n个整数进行排序.
- 给出N个整数,对着N个整数进行排序
- 查找整数:给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
- 10^n个整数(亿级)的排序
- 【C++】N 个整数的排序。【原创技术】
- 输入n个整数,并且进行降序排序
- 10^n个整数(亿级)的排序 .
- 10^n个整数(亿级)的排序 .
- Windows XP 环境下 cygwin +ns2.34 安装过程(图解)
- ioctl 函数与网络接口
- 带你实现一个简单的MyApacheTomcat,迷你并发服务器
- 云计算的实现机制
- 一个apk调用另一个apk的某个activity
- 数列中n个整数排序
- 理解C语言的复杂声明的要点
- Flex3 PieChart 例子
- vector<int *> a
- 拖拽+div放大缩小
- Android 4.0 framework 数据业务学习总结
- 受限波尔兹曼机
- 10911 - Forming Quiz Teams
- fatal error C1083:Cannot open source file :APPMODUL.CPP 的解决方法