思路:

开两个数组,其中一个没有排序的,另一个是未排序的,

首先把第一个最小值元素放到最前面,然后只关注怎么把剩下元素的最小值移动到前面,不关注其他元素发生了什么变化。

选择排序依次把最小值放到前面,然后记录两个位置,一个是最小值的位置即在sort后的位置,一个是sort前原数组的位置,然后输出每次需要的前者和后者,然后呢,得到两者间的距离,就是后者向前者移动的距离。

代码:

#include <iostream>
#include<algorithm>
using namespace std;
int main()
{int i,j,k,m,n,t;int ans[10001],a[10001];int r[10001],l[10001],cha[10001];for(i=0;i<10001;i++){ans[i]=0;a[i]=0;r[i]=0;cha[i]=0;l[i]=0;}scanf("%d",&t);while(t--){scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&a[i]);ans[i]=a[i];}sort(ans+1,ans+1+n);int cnt = 0;for(i=1;i<n;i++){int flag=0;for(j=i;j<=n;j++){if(a[j]==ans[i]){for(k=j;k>i;k--){a[k]=a[k-1];}flag=j;break;}}if(flag!=i){cnt++;l[cnt]=i,r[cnt]=flag,cha[cnt]=flag-i;}}printf("%d\n",cnt);for(i=1;i<=cnt;i++){printf("%d %d %d\n",l[i],r[i],cha[i]);}}return 0;
}

H - Shifting Sort相关推荐

  1. 【最爱的暴力题】B. Shifting Sort

    题目来源 Problem - 1579B - Codeforces 题干 解释 看到数组大小不超过50就非常开心 因为可以暴力法解决! 先将数组a传给数组b,再将它排序好 然后再是模拟,如果a[i]和 ...

  2. B. Shifting Sort (思维)

    思路大家都能想到,代码不是很好写 // Problem: B. Shifting Sort // Contest: Codeforces - Codeforces Round #744 (Div. 3 ...

  3. Codeforces Round #744 (Div. 3) B. Shifting Sort

    题目链接 一道模拟题,题意是给一个长度n的数组,用n次以下选定一个区域集体左移的操作把它排序成一个非递减的数组. 刚开始用冒泡写,结果下标和验重都出了问题,比赛直接寄了.之后换选择思路,还是在验重和不 ...

  4. Shifting Sort(选择排序)

    题目链接:Problem - B - Codeforces 题意:给你n个数,让你执行交换,交换次数不多于n,使得原序列变为一个单调不递减的序列.交换规则见题目,注意交换次数的定义. 分析,n个数用选 ...

  5. H.Shifting

    Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit  Status  Pr ...

  6. B. Shifting Sort(rotate函数旋转应用)

    Problem - B - Codeforces rotate可以传入三个参数,将第二个参数到第三个参数的元素放到第一个参数前面 题意大体是给一个数列,然后通过选取区间进行旋转使得数列递增 AC代码: ...

  7. 排序只显示前5_Linux 文件大小统计与排序 du,df 和 sort!

    不甩锅的码农 行胜于言,和锅锅一起成长. 01 du 与 df 作用与区别? Linux 最有用最常用的统计文件大小命令是什么?无疑就是 du 和 df 了. du(disk usage) du 能看 ...

  8. 指针:调用自定义排序函数sort,对输入的n个数进行从小到大输出。

    Description 自定义函数sort(int *p, int n),功能是对n个数排序.在main函数中,调用它,对输入的任意个数排序. Input 多组测试数据,先输入n(n<100), ...

  9. C语言插入排序Insertion Sort算法(附完整源码)

    插入排序Insertion Sort算法 插入排序Insertion Sort算法的完整源码(定义,实现,main函数测试) 插入排序Insertion Sort算法的完整源码(定义,实现,main函 ...

最新文章

  1. ::operator new、sgi stl alloc、dlmalloc测试结果
  2. 千万级在线推送系统架构解析
  3. 如何在Java中解析命令行参数?
  4. 2014/08/13 – Backbonejs
  5. linux redis php,Linux下编译redis和phpredis的方法
  6. 小论文期刊投稿相关整理资料
  7. loadrunner发送json_Loadrunner模拟JSON接口请求进行测试
  8. Eclipse GlassFish 5.1就在这里!
  9. CDH集群异常处理ERROR  Failure due to stall on seeded torrent.、重装时hdfs提示目录已存在、CDH重启不正常
  10. 设置环境变量ANDROID_SDK_HOME有什么用?
  11. python pandas 排序_python – pandas:单独对每列进行排序
  12. 一步一步写算法(之通用算法的编写)
  13. 罗永浩出任“鲨纹科技”首席忽悠官;华为生产不含美国芯片的手机;PyCharm 2019.3 发布 | 极客头条...
  14. Duilib控件拖动改变大小
  15. 寻找百度图片搜索接口历程--one
  16. java中什么是实例化
  17. 中国移动盘古搜索开创全新服务模式
  18. 浏览器主页被hao123等篡改解决方法
  19. 【技巧】使用微信进行简单的拼接长图
  20. 2018年第九届C/C++ A组蓝桥杯省赛真题(python解法)

热门文章

  1. 服务器系统飞行模式怎么关闭,win10系统开启飞行模式之后无法关闭怎么解决
  2. 009.查找手机电话簿【散列表】
  3. 香港中大完成全球首个多专科单孔微创机械人手术临床研究
  4. 信仰是如何毁掉程序员的
  5. android短信接收器的实现,可以实现自动填写短信验证码功能
  6. JavaScript 实现 标签页 切换效果
  7. VMware添加共享硬盘
  8. android夜间切换失败,android夜间模式切换
  9. M4A格式的ID3信息提取
  10. PHP利用百度语音接口,实现文字图文转语音播放