int main(void) { double * liczby = losuj_liczby(-5, 5, 5); int i = 0; printf("Wylosowane liczby:\n"); for (i = 0; i < 5; i++) { printf("%f\n", liczby[i]); } double suma = sumuj(liczby, 5); printf("Suma: %f\n", suma); double max = znajdz_max(liczby); printf("Max: %f\n", max); int index_max = znajdz_index(liczby, max); printf("Index max: %i\n", index_max); double min = znajdz_min(liczby); printf("Main: %f\n", min); int index_min = znajdz_index(liczby, min); printf("Index min: %i\n", index_min); double * tablica = losuj_2wym(-2, 10, 5); int j = 0; printf("Tablica:\n"); for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { printf("%f,", tablica[pozycja_tablicy(i, j, 5)]); } printf("\n"); } printf("Przekątna:\n"); double * przekatna = przekatna_tablicy(tablica, 5); for (i = 0; i < 5; i++) { printf("%f,", przekatna[i]); } printf("\n"); double suma_przekatnej = sumuj(przekatna, 5); printf("Suma przekątnej:%f\n", suma_przekatnej); sortuj(przekatna, 5); printf("Posortowana przekątna:\n"); for (i = 0; i < 5; i++) { printf("%f,", przekatna[i]); } return EXIT_SUCCESS; }
Interfejs::Interfejs(const char *nazwa_pliku) { //Inicjalizacje maxCzas = INT_MAX; //Poki co nie znalezlismy lepszego rozwiazania niz nieskonczonosc zbiorN = NULL; //Poniewaz teraz to sa wskazniki zbiorG = NULL; clock_t pocz, kon; //Zmienne posluza do odmierzania czasu, aby nie przekroczyc 1s pocz = clock(); kon = clock(); //Wlasciwa czesc algorytmu wczytajZPliku(nazwa_pliku); for(int i=POCZ_TESTU; i<KONI_TESTU && kon-pocz < MS_TESTU; i++) //Test polega na dodawaniu do jednego z warunkow dodatkowej wartosci, //ktora powoduje roznice w szeregowaniu //wartosci zdefiniowane w konfiguracja.h { przygotujKopie(); sortuj(i); unsigned int cmax = wyliczCzas(); if(cmax < maxCzas) //Jesli aktualna lista ma mniejsze cmax to zamieniamy zamienListy(cmax); else lista.clear(); // a jesli nie to czyscimy liste, bo zaraz rozpoczniemy proces od nowa kon = clock(); //odmierzamy czas } // wyswietl(); doPliku(); }
ELEMENT *sortuj(ELEMENT *a, ELEMENT *b) { if(a == NULL) return b; if(b == NULL) return a; if(a->wartosc <= b->wartosc) { a->nastepny = sortuj(a->nastepny, b); return a; } else { b->nastepny = sortuj(b->nastepny, a); return b; } }
void LISTA::fuzja(LISTA& l1, LISTA& l2) { ELEMENT *a = l1.inf.glowa, *b = l2.inf.glowa; ELEMENT *wynik = sortuj(a,b); l1.inf.glowa = wynik; if(l1.inf.ogon->wartosc <= l2.inf.ogon->wartosc) l1.inf.ogon = l2.inf.ogon; else l2.inf.ogon = l1.inf.ogon; l2.zeruj; }
int main(int argc, byte **argv) { switch(argc) { case 3: if( strcmp(argv[1],"sortuj") ) { printf("\nniepoprawne argumeny - tryb dzialania\n"); return 2; } else { sortuj(argv[2]); } break; case 5: if( strcmp(argv[1],"generuj") ) { printf("\nniepoprawne argumeny - tryb dzialania\n"); return 3; } else { unsigned rozmiar = atoi(argv[2]); unsigned ilosc = atoi(argv[3]); if(!rozmiar&&argv[2][0]!='0') { printf("\nniepoprawne argumeny - rozmiar struktur\n"); return 11; } if(!ilosc) { printf("\nniepoprawne argumeny - ilosc struktur\n"); return 12; } generuj(rozmiar,ilosc,argv[4]); } break; default: printf("usage:\n\tsortuj [nazwa pliku]\n\tgeneruj [rozmiar danych struktury w B] [ilosc struktur] [nazwa pliku wyjsciowego]\n"); return 1; break; } return 0; }
void sortuj_napisy(char tab_ch[10][20], int tab_i[10][2], int ilosc) { dopelnij(tab_ch, tab_i, ilosc); sortuj(tab_i, ilosc); }
void Heapsort(size) { kopcuj(size); sortuj(size); }