插入新的数字重新排序

分析:将新的数字与已经排序好的数组中的数字一一比较,直到找到插入点,然后将插入点以后的数字都向后移动一个单位(a[i+1]=a[i]),然后将数据插入即可。

代码:

#include<iostream>
using namespace std;
int main(){
int a[12];//定义用于存储数字的数组
int n;//输入的新的数字
int i=0,j=0,k=0;//排序用到的变量
cout<<"please input ten integers:"<<endl;
for(i=1;i<=10;i++){
cin>>a[i];
} //输入数据
for(i=1;i<10;i++){
k=i;
for(j=i+1;j<=10;j++){
if(a[j]<a[k]){
k=j;
}
}
a[0]=a[i];
a[i]=a[k];
a[k]=a[0];
}
cout<<"sorting order:"<<endl;
for(i=1;i<=10;i++){
cout<<a[i]<<" ";
} //输出数据
cout<<endl;
cout<<"please input a new one:";
cin>>n;
for(i=1;i<=10;i++){
if(a[i]>n){
k=n;
for(j=10;j>=i;j--){
a[j+1]=a[j];
}
a[i]=n;
break;
}
}
cout<<"new sorting order:"<<endl;
for(i=1;i<=11;i++){
cout<<a[i]<<" ";
} //输出数据
cout<<endl;
return 0;
}



将已经排好序的数组中的数据逆置:

分析:实现顺序的逆置,需要找到数组中的中间的数组,以该数字作为中间点,对应的两边的数字交换即可。

#include<iostream>
using namespace std;
int main(){
int a[11];//定义用于存储数字的数组
int i=0,j=0,k=0;//排序用到的变量
cout<<"please input ten integers:"<<endl;
for(i=1;i<=10;i++){
cin>>a[i];
} //输入数据
for(i=1;i<10;i++){
k=i;
for(j=i+1;j<=10;j++){
if(a[j]<a[k]){
k=j;
}
}
a[0]=a[i];
a[i]=a[k];
a[k]=a[0];
}
cout<<"sorting order:"<<endl;
for(i=1;i<=10;i++){
cout<<a[i]<<" ";
} //输出数据
cout<<endl;
cout<<"Reverse order:"<<endl;
i=10;
for(j=1;j<=(i/2);j++){
a[0]=a[j];
a[j]=a[i+1-j];
a[i+1-j]=a[0];
}
for(i=1;i<=10;i++){
cout<<a[i]<<" ";
} //输出数据
cout<<endl;
return 0;
}

还有一种方法就是,在建立一个数组,直接在赋值过程中完成逆置,即:
#include<iostream>
using namespace std;
int main(){
int a[11];//定义用于存储数字的数组 
        int b[11];
int i=0,j=0,k=0;//排序用到的变量
cout<<"please input ten integers:"<<endl;
for(i=1;i<=10;i++){
cin>>a[i];
} //输入数据
for(i=1;i<10;i++){
k=i;
for(j=i+1;j<=10;j++){
if(a[j]<a[k]){
k=j;
}
}
a[0]=a[i];
a[i]=a[k];
a[k]=a[0];
}
cout<<"sorting order:"<<endl;
for(i=1;i<=10;i++){
cout<<a[i]<<" ";
} //输出数据
cout<<endl;
cout<<"Reverse order:"<<endl;
i=10;
for(j=1;j<=i;j++){
             b[j]=a[i+1-j];
}
for(i=1;i<=10;i++){
cout<<b[i]<<" ";
} //输出数据
cout<<endl;
return 0;
}

该方法与上面的方法相比,数据的计算步骤减少了,但是增加了系统空间的开销


最新文章

  1. Android数据加密之Rsa加密
  2. ectouch 常用功能
  3. sublime-text3 3059基本配置
  4. 装个蒜。学习下dispatch queue
  5. RDLC系列之一 简单示例
  6. web简单连接html文件测试
  7. Microsoft SqlServer2008技术内幕:T-Sql语言基础-读书笔记1
  8. HTML5简略介绍
  9. Java-马士兵设计模式学习笔记-观察者模式-AWT简单例子
  10. android Camera 数据流程分析
  11. C# IO操作(一)Path类的常用方法
  12. 使用dom4j生成xml字符串,以及解析xml字符串
  13. html中opacity的使用
  14. 几个常用道的macro
  15. Node.js和PHP运行机制对比
  16. post与get,这两人到底神马区别??
  17. linux设置环境变量
  18. createThread和_beginthreadex区别
  19. 关于SqlServer远程跨库修改数据
  20. java 将一个ip地址分割成一个数组

热门文章

  1. Python压缩脚本编辑
  2. uva11078 - Open Credit System(动态维护关键值)
  3. 做什么职业,也别做程序员,尤其是Java程序员
  4. Unity 5 官方打包管理工具 Asset Bundle Manager
  5. 学习动态性能表(19)--v$undostat
  6. 纯JS实现房贷利率报表对比
  7. CF 19E Fairy——树上差分
  8. 多版本python管理miniconda(集成了virtualenv和pip功能)
  9. Spring 与 @Resource注解
  10. Spring Boot 集成Swagger2生成RESTful API文档