Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // sortowanieszybkie.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <conio.h>
- #include <malloc.h>
- #include <ctime>
- #include <cstdlib>
- int LICZNIK=0;
- void szybkiesortowanie (int* tab, int ile)
- {
- int pivot;
- int gdziepivot;
- LICZNIK++;
- gdziepivot = (ile) / 2 ;
- int p=ile-1;
- int l=0;
- int pamietaj;
- pivot = tab[gdziepivot];
- while (1)
- {
- while ( tab[l] < pivot )
- {
- l++;
- }
- while ( tab[p] > pivot )
- {
- p--;
- }
- if (l <= p)
- {
- pamietaj = tab[p];
- tab[p] = tab[l];
- tab[l] = pamietaj;
- l++;
- p--;
- }
- else
- {
- break;
- }
- }
- if (p > 0)
- {
- szybkiesortowanie (tab, p+1);
- }
- if (l < ile-1)
- {
- szybkiesortowanie ((int *)&tab[l], ile-l);
- }
- LICZNIK--;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- int ile;
- int* tablica;
- srand (time(NULL));
- printf ("ile liczb?\n");
- scanf ("%d",&ile);
- tablica = (int*) malloc (sizeof (int) * ile);
- while (1)
- {
- puts("liczby\n");
- for (int i=0; i<ile;i++)
- {
- tablica[i] = (rand() % 200) - 100;
- }
- /*
- tablica[0] = 17;
- tablica[1] = 58;
- tablica[2] = 4;
- tablica[3] = 37;
- tablica[4] = 3;
- tablica[5] = 87;
- tablica[6] = 70;
- tablica[7] = 5;
- tablica[8] = 68;
- tablica[9] = 97;
- */
- for (int i=0; i<ile;i++)
- {
- printf ("tab[%d] = %d\n",i,tablica[i]);
- }
- puts ("\n");
- szybkiesortowanie ( tablica, ile);
- puts("posortowane\n");
- for (int i=0; i<ile;i++)
- {
- printf ("tab[%d] = %d\n",i,tablica[i]);
- }
- puts ("\n");
- _getch();
- }
- return 0;
- }
Advertisement