数据交换

/*此段代码用于在不排序的情况下,找出一组数中的最大数和最小数。
   并且交换最大数和最后一位数,交换最小数与第一位数。
  此时不能直接排序,因为排序后,原数据的排列顺序已经改变,*/

#include <iostream>
using namespace std;
int main()
{
    int n;       ///表示有几组数。
    cin>>n;
    while(n--)
    {
        int m;             ///表示每组数中有多少个数。
        cin>>m;
        int A[m];

        int min=-99999999,max=99999999;    ///假设两个数为参照,因为输入数据不会比min小,也不会比max大。
        int maxID,minID;

        for(int i=0; i<m; i++)
        {
            cin>>A[i];
                                /// 此时输入一个数比较一次,节约时间
            if(A[i]>min)
            {
                min=A[i];
                maxID=i;          ///特别重要,用于记住最大数的下标,方便待会交换。
            }

            if(A[i]<max)
            {
               max=A[i];
                minID=i;         ///特别重要,用于记住最小数的下标,方便待会交换。
            }
        }

        int t;
             ///交换的步骤可调用swap函数,此时不用加其他头文件。
        t=A[minID];               ///交换最小数与第一个数。
        A[minID]=A[0];
        A[0]=t;

        t=A[maxID];               ///交换最大数与最后一个数。
        A[maxID]=A[m-1];
        A[m-1]=t;
             ///顺序调换完之后输出。
        for(int i=0; i<m; i++)
        {
            cout<<A[i]<<" ";
        }
        cout<<endl;
    }
}
时间: 2024-10-14 12:36:40

数据交换的相关文章

java中的线程协调与线程间的数据交换

Java中提供多种方式协调线程的工作. CountDownLatch:当多个也就是具体的数量等于CountDownLatch初始化参数的时候.线程达到了预期状态或者完成了预期工作时触发事件,其他线程可以等待这个事件来触发自己的后续工作.等待的线程是多个.达到了预期状态的线程会调用CountDownLatch的countDown方法.等待的线程会调用CountDownLatch的await方法. import java.util.concurrent.CountDownLatch; import

JQuery + XML作为前后台数据交换格式实践

JQuery + xml作为前后台数据交换 JQuery提供良好的异步加载接口AJAX,可以局部更新页面数据, http://api.jquery.com/category/ajax/ xml作为一种轻量数据格式,被浏览器js引擎普遍支持,同json格式,但是没有json那么精简. 使用AJAX+xml数据格式来实现动态页面,有以下好处: 1. 松耦合, 页面HTML和数据彻底分离, 即表示层 和 数据层分开, 有利前台样式定制. 不同于以往后台脚本嵌套HTML标签,并输出数据到标签的合适位置,

iOS 中 XML 数据交换格式

     XML 是一种自描述的数据交换格式,但是 XML 的数据交换格式并没有 JSON 来的轻便,但是无可否认的是,XML 的应用范围也是非常广泛的,比如在 ROS(一个开源机器人操作系统)中利用 XML 来描述包的依赖关系等,当然还有很多了.      对于 XML 文档操作包括了"读"与"写",读入 XML 文档并分析的过程称为"解析" XML 文档,"解析" XML 文档在实际开发中是占很大比重的.      读写

Java核心知识点学习----多线程 倒计时记数器CountDownLatch和数据交换的Exchanger

本文将要介绍的内容都是Java5中的新特性,一个是倒计时记数器---CountDownLatch,另一个是用于线程间数据交换的Exchanger. 一.CountDownLatch 1.什么是CountDownLatch? 倒计时计数器,调用CountDownLatch对象的CountDown()方法就将计数器减一,当计数到达0时,则所有等待者或者全部等待者开始执行. 2.如何用? new CountDownLatch(1); 直接new,其构造函数必须传一个int类型的参数,参数的意思是: c

Disruptor——一种可替代有界队列完成并发线程间数据交换的高性能解决方案

本文翻译自LMAX关于Disruptor的论文,同时加上一些自己的理解和标注.Disruptor是一个高效的线程间交换数据的基础组件,它使用栅栏(barrier)+序号(Sequencing)机制协调生产者与消费者,从而避免使用锁和CAS,同时还组合使用预分配内存机制.缓存行机制(cache line).批处理效应(batch effect)来达到高吞吐量和低时延的目标.目前Disruptor版本已经迭代至3.0,本论文是基于Disruptor1.0写就,在新版本中,相对与1.0版本,其核心设计

第三次作业-前端与后台数据交换问题

问题:JS前端取得并解析后台服务器返回的JSON数据方法有哪些? 前一段时间,我在做一个有关美食的Web App,很多商家的店铺信息以及一些用户评论信息等内容需要从后台来获取,如果仅仅只是静态布局的话就太过于死板,但是在进行前端与后端的数据交换时遇到不少问题,如题目JS前端取得并解析后台服务器返回的JSON数据的方法就是问题之一. 在解决这个问题之前,首先需要了解JavaScript eval()函数,eval(string)函数可计算某个字符串,并执行其中JavaScript代码. JS前端取

iOS 中 JSON 数据交换格式

     JSON (JavaScript Object Notation)是一种轻量级的数据交换格式.JSON 的具体教程,可以参见 JSON 中国:http://www.json.org.cn/index.htm ,当然还有 JSON 在线校验格式化工具:http://www.bejson.com/ ,希望深入学习 JSON 可以参考其他教程.JSON 的轻量级是相对于 XML 文档结构而言的,描述项目字符少,所以描述相同的数据所需的字符个数要少,当然传输的速度就会提高而流量也会减少.  

JQuery + JSON作为前后台数据交换格式实践

JQuery + JSON作为前后台数据交换 JQuery提供良好的异步加载接口AJAX,可以局部更新页面数据, http://api.jquery.com/category/ajax/ JSON作为一种轻量数据格式,被浏览器js引擎普遍支持,同xml格式. 使用AJAX+JSON数据格式来实现动态页面,有以下好处: 1. 松耦合, 页面HTML和数据彻底分离, 即表示层 和 数据层分开, 有利前台样式定制. 不同于以往后台脚本嵌套HTML标签,并输出数据到标签的合适位置, 来实现动态页面,表示

MFC拆分窗口及它们之间的数据交换[转]

源代码:http://download.csdn.net/detail/nuptboyzhb/4221531 CSplitterWnd类 CSplitterWnd类提供一个分隔器窗口的功能,分隔器窗口是一个包含有多个窗格的窗口.窗格通常是应用程序特定的由CView派生的对象,但它也可以是具有适当子窗口ID的任何CWnd对象. 一个CSplitterWnd对象通常被嵌入CFrameWnd或CMDIChildWnd父对象.你应按如下步骤创建一个CSplitterWnd对象 1.在父框架中嵌入一个CS

配置VirtualBox虚拟机实现Ubuntu与Windows系统间数据交换即Putty的访问

一.直接修改Ubuntu IP系统配置文件 Ubuntu IP的网络配置文件是:/etc/network/interfaces打开后里面可设置DHCP或手动设置静态Static IP.前面auto eth0,让网卡开机自动挂载,以下操作针对有线网络在Ubuntu中实现两个网卡.               1.以DHCP方式配置网卡(推荐) (1)打开要编辑的文件interfaces 它的的目录是/etc/network/interfaces