Cod sursa(job #289100)

Utilizator chibicitiberiuChibici Tiberiu chibicitiberiu Data 26 martie 2009 14:03:39
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#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;
}