Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <time.h>
- #include <windows.h>
- using namespace std;
- char pole[10][10];
- int const dlzka1 = 10;
- int const dlzka2 = 10000;
- char pole2[dlzka1][dlzka2];
- void generuj (int d) {
- for (int i =0 ; i<d ; i++) {
- for (int j = 0; j<d;j++) {
- pole[i][j]= rand() % 200 -100;
- }
- }
- }
- void generuj2 () {
- for (int i =0 ; i<dlzka1 ; i++) {
- for (int j = 0; j<dlzka2;j++) {
- pole2[i][j]= rand() % 200 -100;
- }
- }
- }
- void sort2 (int d) {
- for (int b =0 ; b<dlzka1 ; b++) {
- for (int i = 0; i < dlzka2-1; i++)
- {
- int min = i;
- for (int j = i + 1; j < dlzka2; j++)
- if (pole2[b][j] < pole2[b][min])
- min = j;
- int swap = pole2[b][i];
- pole2[b][i] = pole2[b][min];
- pole2[b][min] = swap;
- }
- }
- }
- void sort3 (int d) {
- for (int i = 0; i < dlzka2-1; i++)
- {
- int min = i;
- for (int j = i + 1; j < dlzka2; j++)
- if (pole2[d][j] < pole2[d][min])
- min = j;
- int swap = pole2[d][i];
- pole2[d][i] = pole2[d][min];
- pole2[d][min] = swap;
- }
- }
- void vypis (int d) {
- cout << "------------------------------------" << endl;
- for (int i = 0 ; i <d ; i++) {
- for (int j = 0; j<d;j++) {
- cout << (int)pole[i][j] << " ";
- }
- cout <<endl;
- }
- cout <<endl << "------------------------------------" << endl;
- }
- void sort ( int d) {
- for (int b =0 ; b<d ; b++) {
- for (int i = 0; i < d-1; i++)
- {
- int min = i;
- for (int j = i + 1; j < d; j++)
- if (pole[b][j] < pole[b][min])
- min = j;
- int swap = pole[b][i];
- pole[b][i] = pole[b][min];
- pole[b][min] = swap;
- }
- }
- }
- int kolik_ms( LPFILETIME pred, LPFILETIME po )
- {
- hyper pred64b = pred->dwHighDateTime;
- pred64b = ( pred64b << 32 ) | pred->dwLowDateTime;
- hyper po64b = po->dwHighDateTime;
- po64b = ( po64b << 32 ) | po->dwLowDateTime;
- // konverze 100ns -> 1ms
- return ( int ) ( ( po64b - pred64b ) / 10000 );
- }
- DWORD WINAPI vlakno( LPVOID r)
- {
- int *r0 = (int *) r;
- sort3(r0[0]);
- return 0;
- }
- int main ()
- {
- srand((int)time(NULL));
- int r0[10];
- generuj(10);
- vypis (10);
- sort(10);
- vypis(10);
- //-----3----------//
- FILETIME cas_pred, cas_po;
- GetSystemTimeAsFileTime( &cas_pred );
- generuj2();
- cout<< " sortujem...." << endl;
- sort2(10);
- GetSystemTimeAsFileTime( &cas_po );
- cout << "sortovanie trvalo:" << kolik_ms( &cas_pred, &cas_po ) <<"ms" <<endl;
- //----------5----------//
- HANDLE p[10];
- GetSystemTimeAsFileTime( &cas_pred );
- cout << "sortujem s 10 vlaknami...." << endl;
- for (int i = 0;i<10;i++) {
- r0[i] = i;
- int r1[] = {r0[i],0};
- p[i] = CreateThread( 0, 0, vlakno, r1, 0, 0 );
- }
- for (int i = 0;i<10;i++) {
- WaitForSingleObject (p[i],INFINITE);
- }
- GetSystemTimeAsFileTime( &cas_po );
- cout << "sortovanie trvalo:" << kolik_ms( &cas_pred, &cas_po ) <<"ms" <<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement