[ create a new paste ] login | about

Link: http://codepad.org/AgKL0ZY3    [ raw code | output | fork ]

C++, pasted on Mar 13:
// Jan Kuri E1029453
#include <ctime>
#include <iostream>

namespace vaja1
{
	bool urejeno(const int* A, int n) {
		if (n<=0 || A==NULL)
			return false;
		for(int i=0;i<n-1;i++)
			if (A[i]<A[i+1])
				return false;
		return true;
	}

	int* uredi_z_vstavljanjem(const int* A, int n) {
        int k, i, j;
        int* B = new int[n];
     
        for (j=0; j < n; j++) // kopiramo polje, ki ga bomo urejali
            B[j] = A[j];

        for (j=1; j < n; j++) {
            k = B[j];
            i = j-1;
            while (B[i] < k && i >= 0) {
                B[i+1] = B[i];
                i--;
            }
            B[i+1] = k;
        }

        return B; // vrnemo urejeno polje
	}

	void uredi_z_izbiranjem(int* A, int n) {
	    int i, j, max, tmp;
        for (i=0; i < n-1; i++) {
            max = i;
            for (j=i+1; j < n; j++) 
                if (A[j] > A[max]) // ce je vecji..
                    max = j;
            tmp = A[i]; // zamenjamo elementa
            A[i] = A[max];
            A[max] = tmp;
        }
    }

	
  void zamenjaj(int &a, int &b) {
        int tmp = a;
        a = b;
        b = tmp;
    } 
    void qsort(int* A, int levi, int desni) {
        int i = levi;
        int j = desni;
        int pivot = A[(levi + desni) / 2];

        while (i <= j) {
            while (A[i] < pivot)
                i++;
            while (A[j] > pivot)
                j--;
            if (i <= j) {
                zamenjaj(A[i], A[j]);
                i++;
                j--;
            }
        }

        if (levi < j)
            qsort(A, levi, j);
        if (i < desni)
            qsort(A, i, desni);
    }
    void uredi_hitro(int* A, int n) {
        // TODO
              qsort(A, 0, n-1); 
    }

   

}

int main() {
	int polje[]={109, 114, 84, 71, 51, 106, 51, 79, 64, 42};
	int dolzina=sizeof(polje)/sizeof(int);

	clock_t start=clock();
	//int* vrnjeno_polje=vaja1::uredi_z_vstavljanjem(polje, dolzina);
	//vaja1::uredi_z_izbiranjem(polje, dolzina);
	vaja1::uredi_hitro(polje, dolzina);
    //vaja1::uredi_z_izbiranjem(p, d); 
	clock_t cilj=clock();

    //vaja1::izpisi_polje(polje, dolzina);
    //vaja1::izpisi_polje(vrnjeno_polje, dolzina);

	//if ( !vaja1::urejeno(vrnjeno_polje, dolzina) )
	if ( !vaja1::urejeno(polje, dolzina) )
		std::cout << "napaka v algoritmu";
	else
		std::cout << "testni vzorec OK";

	std::cout << "\nCas izvajanja: " << difftime(cilj, start);
    std::cout << "\n";

	//TUKAJ VSTAVI SVOJE TESTNE PRIMERE
	return 0;
}


Output:
1
2
napaka v algoritmu
Cas izvajanja: 0


Create a new paste based on this one


Comments: