10327 - Flip Sort

时间:2023-03-09 02:17:31
10327 - Flip Sort

原文链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1268

给一段序列,求出升序排序时最少需要的交换次数。

用冒泡排序法,计算交换次数即可。

代码:

 #include<stdio.h>
long bubbleSort(int arr[],int n)/*对arr数组的前n个数进行冒泡排序*/
{
int i,j,t,flog;
long k=;
for(i=;i<n-;i++)
{
flog=;
for(j=;j<n-i-;j++)
{
if(arr[j+]<arr[j])
{
t=arr[j+];
arr[j+]=arr[j];
arr[j]=t;
flog=;
k++;
}
}
if(!flog) return k;/*没有进行交换,排序提前结束*/
}
return k;
} int main()
{
int n,a[],i;
while(scanf("%d",&n)!=EOF)
{
for(i=;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("Minimum exchange operations : %d\n",bubbleSort(a,n));
}
return ;
}