Pagini recente » Cod sursa (job #2204173) | Cod sursa (job #3214623) | Cod sursa (job #789905) | Cod sursa (job #1268496) | Cod sursa (job #289100)
Cod sursa(job #289100)
#include<fstream.h>
#define limit 500000
//#define limit 100
//#define true 1
//#define false 0
using namespace std;
int array[limit];
void swap (int *a, int *b)
{
int c;
c=*a;
*a=*b;
*b=c;
}
void combSort(int n)
{
int swaps, temp=n;
do {
if (n>1) {
n/=1.3;
if (n==10 || n==9) n=11;
}
int i=0;
swaps=0;
while (i+n<temp) {
if (array[i] > array[i+n]) {
swap(&array[i], &array[i+n]);
swaps=1;
}
i++;
}
} while (n>1 || swaps==1);
}
int main()
{
int n;
ifstream in ("algsort.in");
in>>n;
for (int i=0;i<n;i++)
in>>array[i];
in.close();
combSort(n);
ofstream out ("algsort.out");
for (int i=0;i<n;i++)
out<<array[i]<<" ";
out.close();
return 0;
}