本文主要是介绍bnu_29066 排序网络,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原题链接:http://acm.bnu.edu.cn/v3/problem_show.php?pid=29066
分析:
题目说了一堆......然后自己蒙了。其实仔细想想网络排序就是让两个数两两比较。再想想不是就冒泡排序嚒-,-
需要的比较器数就是冒泡排序时比较的次数,比较器比较的两个数的下标就是冒泡排序时比较两个数的下标。
注意题目说了“这样的排序网络存在多种,给出任意一个即可。”,所以冒泡排序的顺序输出就好了。
我的代码:
#include<stdio.h>
int main()
{int n;while(~scanf("%d",&n)){int tot=n*(n-1)>>1;printf("%d\n",tot);for(int i=1;i<=n-1;i++)for(int j=i+1;j<=n;j++) printf("%d %d\n",i,j);}return 0;
}
总结:自己开始写的时候没有想到呀o(︶︿︶)o。
这篇关于bnu_29066 排序网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!