超长数列中的n个整数排序,要求能够把从指定位置m开始的n个数排列成降序,并输出完整的数列
2012-12-13 22:28
267 查看
//超长数列中的n个整数排序,要求能够把从指定位置m开始的n个数排列成降序,并输出完整的数列
#include <iostream>
using namespace std;
class LIST{
public:
LIST(int p[],int x,int y,int size){
m=x;n=y;len=size;
p1=new int[len];
for (int i=0;i<len;i++)
p1[i]=p[i];
}
void show(){
for (int j=0;j<len;j++)
cout<<p1[j]<<" ";
cout<<endl;
}
void Paixu(){
for (int i=m-1;i<m+n-1;i++)
for(int j=m-1;j<m+n-2;j++)
if(p1[j]<=p1[j+1]){
int temp=p1[j];
p1[j]=p1[j+1];
p1[j+1]=temp;
}
}
private:
int m,n,len;
int *p1;
};
int main(){
int num;
cout<<"输入超长数列的长度:"<<endl;
cin>>num;
int *p=new int[num];
cout<<"请输入数列的值:"<<endl;
for (int i=0;i<num;i++)
cin>>p[i];
cout<<endl;
int m,n;
cout<<"请输入开始位置值:"<<endl;
cin>>m;
cout<<"请输入要排序的个数:"<<endl;
cin>>n;
LIST list(p,m,n,num);
cout<<"原数组为:"<<endl;
list.show();
list.Paixu();
cout<<"现数组为:"<<endl;
list.show();
delete [] p;
return 0;
}
#include <iostream>
using namespace std;
class LIST{
public:
LIST(int p[],int x,int y,int size){
m=x;n=y;len=size;
p1=new int[len];
for (int i=0;i<len;i++)
p1[i]=p[i];
}
void show(){
for (int j=0;j<len;j++)
cout<<p1[j]<<" ";
cout<<endl;
}
void Paixu(){
for (int i=m-1;i<m+n-1;i++)
for(int j=m-1;j<m+n-2;j++)
if(p1[j]<=p1[j+1]){
int temp=p1[j];
p1[j]=p1[j+1];
p1[j+1]=temp;
}
}
private:
int m,n,len;
int *p1;
};
int main(){
int num;
cout<<"输入超长数列的长度:"<<endl;
cin>>num;
int *p=new int[num];
cout<<"请输入数列的值:"<<endl;
for (int i=0;i<num;i++)
cin>>p[i];
cout<<endl;
int m,n;
cout<<"请输入开始位置值:"<<endl;
cin>>m;
cout<<"请输入要排序的个数:"<<endl;
cin>>n;
LIST list(p,m,n,num);
cout<<"原数组为:"<<endl;
list.show();
list.Paixu();
cout<<"现数组为:"<<endl;
list.show();
delete [] p;
return 0;
}
相关文章推荐
- 三个数排序。要求输入三个整数,按逗号隔开,把它们从小到大排列,输出结果用空格隔开。
- 输入n个整数,编写函数实现以下操作,要求用指针实现: (1) 对n个数进行排序; (2) 将从指定位置的m个数逆序存放,例如:原序列为2,4,6,8,10,12,14,16,18,20,若要求把
- 在扑克牌游戏中,每次游戏开始都要求把54张牌重新排列一下,称为洗牌。试编写程序将一副扑克牌(用54个整数1~54表示)随机洗好后,顺序输出54张牌的情况。
- 在扑克牌游戏中,每次游戏开始都要求把54张牌重新排列一下,称为洗牌。试编写程序将一副扑克牌(用54个整数1~54表示)随机洗好后,顺序输出54张牌的情况。
- 给一个整数数组,对数组中的每个整数中的所有数字按照升序排列(如101排序后为011)请写一个方法,输出排序后的数组中的最大数。 例如有一个数组: 101、132、375,排序后11、123、357,
- Problem Description 有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。 Input 输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义
- N个有序整数数列已放在一维数组中,利用二分查找法查找整数m在数组中的位置,若找到,则输出其下标值;反之,则输出 “Not be found”
- 第八题:牛牛的作业薄上有一个长度为 n 的排列 A,这个排列包含了从1到n的n个数,但是因为一些原因,其中有一些位置(不超过 10 个)看不清了,但是牛牛记得这个数列顺序对的数量是 k,顺序对是指满足 i < j 且 A[i] < A[j] 的对数,请帮助牛牛计算出,符合这个要求的合法排列的数目。
- 将输入的整数排序并指定位置逆序存放
- 3. 用选择法实现对10个整数按从大到小的顺序排序输出(要求完成sort1函数)。
- 输入两个整数n和m, 从数列1,2,...,n中任意选择几个数,使其和等于m, 要求编写程序输出所有的组合
- 5.编写一个程序输出从2开始的素数,素数个数由用户指定,要求10个一行。java
- 冒泡排序和希尔排序案列详解(要求输入10个整数,输出排序结果)
- :输入10个整数,保存在一个数组中,在数组中查找某个数,给出是否找到的信息。如果找到了,要求输出该数在数组中所处的位置;如果找不到,输出“没有找到!
- 文件中有一组整数,要求排序后输出到另一个文件中
- 文件中有一整数数组,要求排序后输出到另一文件(C++)
- C++程序设计实践指导1.7超长数列中n个数排序改写要求实现
- 一个链表L 一个链表P 包含升序排列的整数 操作PrintLots(L,P)将打印L中那些由P所指定的位置上的元素
- 文件中有一组整数,要求排序后输出到另一个文件中
- 输入10个整数,将它们从小到大排序后输出,并给出现在每个元素在原来序列中的位置。