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>
- void szybkiesortowanie (int* tab, int ile)
- {
- int pivot;
- int gdziepivot;
- int LICZNIK=0;
- LICZNIK++;
- gdziepivot = (ile) / 2 ;
- // printf ("[%d] - %d",pivot, tab[pivot]);
- int p=ile-1;
- int l=0;
- int pamietaj;
- puts ("\n\n\n");
- pivot = tab[gdziepivot];
- while (1)
- {
- while ( ( tab[l] < pivot ) )
- {
- //printf ("tab[%d] -",l);
- //printf ("%d\n",tab[l]);
- l++;
- }
- while ( ( tab[p] > pivot ) )
- {
- // printf ("tab[%d] -",p);
- // printf ("%d\n",tab[p]);
- p--;
- }
- if (l < p)
- {
- pamietaj = tab[p];
- tab[p] = tab[l];
- tab[l] = pamietaj;
- if (l==gdziepivot)
- {
- gdziepivot = p;
- }
- else
- {
- if (p==gdziepivot)
- {
- gdziepivot=l;
- }
- }
- l++; //
- p--; //?
- }
- if (l>=p)
- {
- break;
- }
- }
- if ( (gdziepivot>0) && (ile!=1 ))
- {
- szybkiesortowanie (tab, gdziepivot);
- }
- if ( (gdziepivot<ile-1) && (ile!=1 ))
- {
- szybkiesortowanie ((int *)&tab[gdziepivot+1], ile-1-gdziepivot);
- }
- for (int i=0; i<ile;i++)
- {
- printf ("tab[%d] = %d\n",i,tab[i]);
- }
- puts ("\n");
- //break;
- LICZNIK--;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- int ile;
- int* tablica;
- int LICZNIK;
- srand (time(NULL));
- /*
- printf ("ile liczb?\n");
- scanf ("%d",&ile);
- */
- ile = 8;
- tablica = (int*) malloc (sizeof (int) * ile);
- /* for (int i=0; i<ile;i++)
- {
- tab[i] = rand() %100;
- }
- */
- tablica[0] = 5;
- tablica[1] = 3;
- tablica[2] = 0;
- tablica[3] = 2;
- tablica[4] = 4;
- tablica[5] = 1;
- tablica[6] = 7;
- tablica[7] = 3;
- for (int i=0; i<ile;i++)
- {
- printf ("tab[%d] = %d\n",i,tablica[i]);
- }
- szybkiesortowanie ( tablica, ile);
- puts ("\n");
- /////////////////////
- _getch();
- return 0;
- }
Advertisement