Re: 10327 - Flip Sort
Posted: Mon Nov 10, 2008 11:54 pm
thanks a lot..
i got it..
take care...bye ....
i got it..
take care...bye ....
The Online Judge board
https://uva.onlinejudge.org/board/
https://uva.onlinejudge.org/board/viewtopic.php?f=20&t=28753
Code: Select all
#include <iostream>
#include <algorithm>
#include <algo.h>
using namespace std;
int main ()
{
int a[1002],n,i,count=0;
while(cin >> n)
{
if(n<=0)
break;
count=0;
for (i=0; i<n; i++)
cin >>a[i];
while (!is_sorted(a,a+n))
{
for (i=0; i<n; i++)
{
if (a[i]>a[i+1])
{
swap(a[i], a[i+1]);
count++;
}
}
}
cout<<"Minimum exchange operations : "<<count<<endl;
}
return 0;
}
for (i=0; i<n; i++)
cin >>a;
for (i=0; i<n; i++)
{
if (a>a[i+1]) .....//problem here
look here you r comparing a[n-1]>a[n] when i=n-1(final pass).but what is the index of last element in a[]??is it n or n-1???
so write i<n-1 rather than n.
you have used #include <algo.h> i dont know what is this
you have also used several built in function like is_sorted,swap.
i think u shouldn't use built in function for such a simple problem if you want to learn programing.
you should code this bubble sort manually.
Code: Select all
removed.
Code: Select all
#include<iostream>
using namespace std;
int main()
{
//freopen("flip sort.txt","r",stdin);
//freopen("flip sort output.txt","a+",stdout);
unsigned long int i,c,j,num;
char val[10],t;
while(1)
{
cin>>num;
for(i=0;i<num;i++)
{
cin>>t;
val[i]=t-48;
}
c=0;
for(i=1;i<num;i++)
{
for(j=0;j<num-i;j++)
{
if(val[j]>val[j+1])
{
t=val[j];
val[j]=val[j+1];
val[j+1]=t;
c++;
}
}
}
cout<<"Minimum exchange operation : "<<c<<endl;
}
return 0;
}
Code: Select all
//#include<iostream>
#include<stdio.h>
//using namespace std;
int main()
{
//freopen("trainswapping.txt","r",stdin);
int ks,l,i,j,m,n,t;
long count=0;
int num[1005];
count=0;
scanf("%d",&l);
for(j=0;j<l;j++)
{
scanf("%d",&num[j]);
}
for(m=0;m<l;m++)
{
for(n=0;n<l-m-1;n++)
{
if(num[n]>num[n+1])
{
t=num[n];
num[n]=num[n+1];
num[n+1]=t;
count++;
}
}
}
printf("Minimum exchange operations : %ld\n",count);
return 0;
}
Code: Select all
#include <iostream>
#include <iomanip>
using namespace std;
int main ()
{
//freopen("input.in", "r", stdin);
int n,x[1003];
while(cin>>n)
{
for(int i=0;i<n;i++)
{cin>>x[i];}
int count=0;
///////////ARRANGING ARRAY (SORTING) --->HERE ASCENDING FOR EXAMPLE//////////////
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
{
if (x[i]>x[j]) /////Swapping
{swap(x[i],x[j]);
count++;
}
}
//////////////////////END OF SORTING///////////////////////////////////////
cout<<"Minimum exchange operations : "<<count<<endl;
}
return 0;
}
WA and TLE after modify I can't understand what is my problem plz anyone help me
here is my code
Code: Select all
#include <set>
#include <map>
#include <list>
#include <cmath>
#include <ctime>
#include <queue>
#include <stack>
#include <cctype>
#include <cstdio>
#include <string.h>
#include <vector>
#include <cassert>
#include <cstdlib>
#include <cstring>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <stdio.h>
using namespace std;
int main()
{
int i,T,n[1000],temp,swap=0;
//vector<int>v;
while(1)
{
cin>>T;
if(T==0) break;
for(i=0;i<T;i++)
{
cin>>n[i];
// v.push_back(n);
}
for(i=0;i<T-1;i++)
{
for(int j=i+1;j<T;j++)
{
if(n[i]>n[j])
{
temp=n[i];
n[i]=n[j];
n[j]=temp;
swap++;
}
}
}
cout<<"Minimum exchange operations : "<<swap<<endl;
swap=0;
}
//cout<<endl;
// v.clear();
return 0;
}