UVa 10327 - Flip Sort
来源:互联网 发布:淘宝cpu散片能买吗 编辑:程序博客网 时间:2024/06/03 21:12
题目:求交换相邻元素排序的最小交换次数。(10810类似物)
分析:排序最少交换次数:1.相邻交换,为逆序数;随意交换,为总数减环个数。
证明:每次相邻交换时,逆序数减1或者加1,所以最优情况下,逆序数为交换次数下界。
存在性,每次找到逆序对交换即可构造出一种下界。
#include <iostream>#include <cstdlib>#include <cstdio>using namespace std;long Data[500005];long Save[500005];//利用合并排序求逆序数 long mergesort( int l, int r ){if ( l < r ) {;long L = mergesort( l, (l+r)/2 );long R = mergesort( (l+r)/2+1, r );//合并排序 int ps = l,pe = (l+r)/2,qs = (l+r)/2+1,s = l;while ( ps <= pe || qs <= r )if ( qs <= r && ( ps > pe || Data[ps] > Data[qs] ) ) {Save[s ++] = Data[qs ++]; L += pe-ps+1L;}else Save[s ++] = Data[ps ++];for ( int i = l ; i <= r ; ++ i )Data[i] = Save[i];return L+R;}else return 0L;}int main(){int n;while ( ~scanf("%d",&n) ) {for ( int i = 0 ; i < n ; ++ i )scanf("%ld",&Data[i]);printf("Minimum exchange operations : %ld\n",mergesort( 0, n-1 ));}return 0;}
- UVa, 10327 Flip Sort
- UVa 10327 - Flip Sort
- uva 10327 Flip Sort
- uva 10327 Flip Sort
- (应用排序算法编程7.2.1)UVA 10327 Flip Sort(使用冒泡排序来求逆序对)
- A. Gravity Flip(水 sort)
- UVa 10016 - Flip-Flop the Squarelotron
- flip
- flip
- UVa 11462 - Age Sort
- Uva-11462-Age Sort
- uva 11462 Age Sort
- Uva - 11462 - Age Sort
- UVA 11462 Age Sort
- UVa:11462 Age Sort
- UVA - 11462 Age Sort
- UVA 11462 - Age Sort
- UVA 11462 Age Sort
- 最近一直在找工作
- Java File类 mkdir 不能创建多层目录
- hdu 4324 Triangle LOVE
- asp.net制作windows服务并打包安装的过程
- Storyboard全解析-第1部分
- UVa 10327 - Flip Sort
- 网络知识读书笔记1概论——计算机网络第五版
- PAT,PMT和SDT三类表格的格式
- oracle 修改oracle_sid和db_name名字
- oracle translate() 详解+实例
- Windows 8.1、Windows Server 2012 R2、System Center 2012 R2、Visual Studio 2013正式发布了
- mysql query insert中文乱码
- Struts2中文乱码问题
- WEB开发中的字符编码问题分析与解决。