首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

二零零九年第4题

2013-11-09 
2009年第4题题目地址:http://jobdu.sinaapp.com/problem.php?pid1034C语言源码:做法一:快排#includestdi

2009年第4题

题目地址:http://jobdu.sinaapp.com/problem.php?pid=1034

C语言源码:

做法一:快排

#include<stdio.h>#define maxsize 100010int a[maxsize];void adjust(int i,int n){int j,temp;j=2*i;temp=a[i];while(j<=n&&(temp<=a[j]||(j+1<=n&&temp<=a[j+1]))){if(j+1<=n&&a[j+1]>a[j])j++;a[i]=a[j];i=j;j=2*i;}a[i]=temp;}int main(){int i,n,m,temp;scanf("%d %d",&n,&m);while(n||m){if(m>n)m=n;for(i=1;i<=n;i++)scanf("%d",&a[i]);for(i=n/2;i>0;i--)adjust(i,n);for(i=1;i<=m;i++){temp=a[1];a[1]=a[n-i+1];a[n-i+1]=temp;if(n-i>1)adjust(1,n-i);}for(i=n;i>n-m+1;i--)printf("%d ",a[i]);printf("%d\n",a[i]);scanf("%d %d",&n,&m);}}


热点排行