特殊交换(蘑菇街笔试题)
来源:互联网 发布:网络教育本科费用 编辑:程序博客网 时间:2024/04/30 23:49
题目:现有一个n个整数的序列,你要做的就是交换两个数的位置直到整个序列按照升序排列,那么将这个整数序列排好序,需要交换多少次?例如,1,2,3,5,4,我们只需要交换一次,即将5和4交换即可。
输入描述:
第一行输入一个正整数n(n≤1000),表示数字序列的元素个数,占一行;接下来一行输入从1到n的n个整数排序,中间用空格隔开
输出描述:
输出序列升序排列需要的最少交换次数
输入例子:
4
4 3 2 1
输出例子:
6
#include <iostream>using namespace std;int main(){ int arr[1000]; int num=0; int n; cin>>n; cout<<endl; for(int i=0;i<n;i++) { int p; cin>>p; arr[i]=p; } for(int i=0;i<n;i++) { for(int j=0;j<n-1;j++) { if(arr[j+1]<arr[j]) { int tmp; tmp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=tmp; num=num+1; } } } /*for(int i=0;i<n;i++) { cout<<arr[i]<<" "; }*/ cout<<endl; cout<<num<<endl; return 0;}
public static void main(String[] args) { int arr[]=new int[1000]; int num=0; Scanner scan=new Scanner(System.in); int n=scan.nextInt(); System.out.println(); for(int i=0;i<n;i++) { int p=scan.nextInt(); arr[i]=p; } for(int i=0;i<n;i++) { for(int j=0;j<n-1;j++) { if(arr[j+1]<arr[j]) { int tmp; tmp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=tmp; num=num+1; } } } System.out.println(num); }
阅读全文
0 0
- 特殊交换(蘑菇街笔试题)
- 蘑菇街 特殊交换
- 名企笔试:蘑菇街2017校园(特殊交换)2017-03-18 算法爱好者
- 笔试题(蘑菇街):最大间隔
- 笔试题(蘑菇街):回文串
- 名企面试题个人总结——蘑菇街2017校园招聘(特殊交换)
- 蘑菇街实习生笔试题
- 蘑菇街笔试题5
- 蘑菇街笔试题1
- 蘑菇街笔试题总结
- 蘑菇街2016招聘在线笔试题
- 蘑菇街笔试题 搬圆桌
- 蘑菇街笔试题 最大间隔
- 蘑菇街笔试题 投篮比赛
- 爱情数字(蘑菇街在线笔试)
- 【蘑菇街笔试】
- 蘑菇街2016招聘笔试
- 百度笔试题:蘑菇阵
- [leetcode]402. Remove K Digits
- HRBUST 2327 Collection Game "尚学堂杯"哈尔滨理工大学第七届程序设计竞赛
- gulp自动化构建工具的使用
- java静态代理与动态代理简单分析
- C#将DataTable转化为List<T>
- 特殊交换(蘑菇街笔试题)
- elasticsearch集群的详细安装步骤
- Bootstrap学习之二:栅格化布局
- 深度神经网络-权值参数个数计算
- react阻止冒泡事件
- (HDU 2821)Pusher DFS + 在一个方向上可以移动多位
- bootstrap表格和按钮
- android中实现对多个EditText的监听
- 关于fragment嵌套fragment,第一次能加载布局,第二次不能加载布局的问题