阅读程序 普及篇 12、NOIP2005 提高组 初赛 阅读程序写结果.4.2

#include <cstdio>
#include <cmath> 
#include <bits/stdc++.h>
using namespace std;
int a[50];
void work(int p,int r){ //二分快排 以最后一个数为基准 
    if(p<r){
    	int i=p-1,j,temp;
        for(j=p;j<r;j++){
            if(a[j]>=a[r]){
                i++;
                cout<<"i="<<i<<" j="<<j<<" a["<<i<<"]="<<a[i]<<" a["<<j<<"]="<<a[j]<<endl;
                temp=a[i];a[i]=a[j];a[j]=temp;// 
            }
        }
        
        cout<<"r="<<r<<" i+1="<<i+1<<endl;
        cout<<"p="<<p<<" i="<<i<<" r="<<r<<endl;
		temp=a[i+1];
        a[i+1]=a[r];
        a[r]=temp;
        
        cout<<"i+1="<<a[i+1]<<endl;
		for(int k=p;k<=r;k++)
        { 
    		cout<<a[k]<<" ";
		}
		cout<<endl;
		
		work(p,i);
        work(i+2,r);
    }
}
int main(){
    int n,i;
    int sum=0;
    scanf("%d",&n); 
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    work(0,n-1);
    for(int i=0;i<=n-1;i++)
    {
    	cout<<a[i]<<" ";
	}
	cout<<endl;
    for(i=0;i<n-1;i++)
        sum+=abs(a[i+1]-a[i]);//abs stdlib.h
    printf("%d\n",sum);
    return 0;
}
//输入:10 23 435 12 345 3123 43 456 12 32 -100
//输出
//答案:3223 
/*
10 23 435 12 345 3123 43 456 12 32 -100
i=0 j=0 a[0]=23 a[0]=23
i=1 j=1 a[1]=435 a[1]=435
i=2 j=2 a[2]=12 a[2]=12
i=3 j=3 a[3]=345 a[3]=345
i=4 j=4 a[4]=3123 a[4]=3123
i=5 j=5 a[5]=43 a[5]=43
i=6 j=6 a[6]=456 a[6]=456
i=7 j=7 a[7]=12 a[7]=12
i=8 j=8 a[8]=32 a[8]=32
r=9 i+1=9
p=0 i=8 r=9
i+1=-100
23 435 12 345 3123 43 456 12 32 -100
i=0 j=1 a[0]=23 a[1]=435
i=1 j=3 a[1]=23 a[3]=345
i=2 j=4 a[2]=12 a[4]=3123
i=3 j=5 a[3]=23 a[5]=43
i=4 j=6 a[4]=12 a[6]=456
r=8 i+1=5
p=0 i=4 r=8
i+1=32
435 345 3123 43 456 32 12 12 23
i=0 j=2 a[0]=435 a[2]=3123
r=4 i+1=1
p=0 i=0 r=4
i+1=456
3123 456 435 43 345
i=2 j=2 a[2]=435 a[2]=435
r=4 i+1=3
p=2 i=2 r=4
i+1=345
435 345 43
r=8 i+1=6
p=6 i=5 r=8
i+1=23
23 12 12
i=7 j=7 a[7]=12 a[7]=12
r=8 i+1=8
p=7 i=7 r=8
i+1=12
12 12
3123 456 435 345 43 32 23 12 12 -100
3223

--------------------------------
Process exited after 4.555 seconds with return value 0
请按任意键继续. . .
*/

阅读程序 普及篇(1-8题)

阅读程序 普及篇(1-8题)_dllglvzhenfeng的博客-CSDN博客

阅读程序 普及篇(9-14题)

阅读程序 普及篇(9-14题)_dllglvzhenfeng的博客-CSDN博客

阅读程序 普及篇 11、NOIP2004提高组 阅读程序写结果 4.2

阅读程序 普及篇 11、NOIP2004提高组 阅读程序写结果 4.2_dllglvzhenfeng的博客-CSDN博客




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dllglvzhenfeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值