Termin zajęć: 15/16.03.2011
Do przygotowania:
void sortBubble(type* tab, int length)
void sortSelection(type* tab, int length)
void sortInsertion(type* tab, int length)
void sortCounting(type* tab, int length)
/* * \brief Funkcja porównująca dwie wartości * * \param val1 - wartość 1. * \param val2 - wartość 2. * \return Funkcja zwraca: * \li -1 jeżeli val1 > val2 * \li 0 jeżeli val1 == val2 * \li 1 jeżeli val1 < val2 */ int compare(type val1, type val2)
/* * \brief Funkcja wypisująca wartości tablicy * * \param tab - tablica wartosci * \param length - wielkość tablicy */ void printtab(type* tab, int length)
typedef int type;
umożliwi nam to szybką zmianę typu na którym będziemy pracowali.
#include <stdint.h> __inline__ uint64_t rdtsc() { uint32_t lo, hi; __asm__ __volatile__ ( "xorl %%eax,%%eax \n cpuid" ::: "%rax", "%rbx", "%rcx", "%rdx"); __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi)); return (uint64_t)hi << 32 | lo; }
uint64_t s,e,d; ... s = rdtsc(); // kod którego czas wykonania mierzymy e = rdtsc(); d = e-s; printf("Czas wykonania kodu d = %lld\n", d);