[计蒜客(蓝桥杯省赛)]交叉排序 原创

题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛)

算法标签 冒泡排序

题目描述

在这里插入图片描述

思路

冒泡排序

代码

#include<iostream>

using namespace std;
const int N=1E5;
int a[N],l1,r1,l2,r2,n;


void sort(int l1,int r1,int l2,int r2)
{
  for(int i=l1;i<=r1;i++)
    for(int j=i+1;j<=r1;j++)
      if(a[i]>a[j])a[i]^=a[j]^=a[i]^=a[j];
  
  for(int i=l2;i<=r2;i++)
    for(int j=i+1;j<=r2;j++)
      if(a[i]<a[j])a[i]^=a[j]^=a[i]^=a[j];
}

int main()
{
  cin>>n>>l1>>r1>>l2>>r2;
  
  for(int i=1;i<=n;i++)cin>>a[i];
  
  sort(l1,r1,l2,r2);
  
  for(int i=1;i<=n;i++)
    if(i!=n)cout<<a[i]<<" ";
  	else if(i==n)cout<<a[i];
  
  return 0;
}
posted @ 2022-07-03 17:22  俺叫西西弗斯  阅读(0)  评论(0)    收藏  举报  来源