#include "stdafx.h" #include "time.h" #include using namespace std; unsigned long int const n = 200000; void bubblesort(unsigned long int n, float*a) { unsigned long int l, k; float p; l = n; do { k = 0; l = l - 1; for (unsigned long int i = 1; i <= l; i++) { if (a[i] > a[i + 1]) { p = a[i]; a[i] = a[i + 1]; a[i + 1] = p; k = k + 1; } } } while (k != 0); } void insertsort(unsigned long int n, float*a) { unsigned long int l, p, s, k; float y, w; w = -1, 7E38; a[0] = w; for (unsigned long int i = 2; i<=n; i++) { y = a[i]; l = 0; p = i - 1; do { s = (l + p + 1) / 2; if (a[s] <= y) l = s; else p = s - 1; } while (l != p); k = l; for (unsigned long int j=i-1;j>=k+1;j--) { a[j + 1] = a[j]; } a[k + 1] = y; } } int main() { float *a = new float[n]; unsigned long int m; int k; time_t t; clock_t tp, tk; double tc; srand((unsigned)time(&t)); cout << "podaj liczbe wyrazow ciagu" << endl; cin >> m; cout << "\n"; cout << "wylosowany ciag " << endl; for (unsigned long int i = 1; i <= m; i++) { a[i] = rand() % 10000; cout << a[i] << "\t"; } cout << "\n"; do { cout << "podaj numer metody sortowania" << "\n" << "1-babelkowa" << "\n"; cout << "2-sortowanie poprzez wstawianie" << "\n"; cin >> k; switch (k) { case 1: { cout << "metoda babelkowa"; tp = clock(); bubblesort(m, a); tk = clock(); tc=(tk - tp) / double(CLOCKS_PER_SEC); cout << "czas sortowania= " << tc << "\n"; break; } case 2: { cout << "metoda sortowania przez wstawianie"; tp = clock(); insertsort(m, a); tk = clock(); tc = (tk - tp) / double(CLOCKS_PER_SEC); cout << "czas sortowania= " << tc << "\n"; break; } case 0: break; } cout << "ciag posortowany" << endl; for (unsigned long int i = 1; i <= m; i++) cout << a[i] << "\t"; } while (k != 0); return 0; }