Spis treści

Zajęcia 7 (07/01/2014)

Sortowanie przez wstawianie

Zaimplementuj funkcję realizującą sortowanie za pomocą algorytmu przez wstawianie (insert sort) ciągu n liczb rzeczywistych.

Dane: tablica zawierająca ciąg liczb rzeczywistych oraz liczba całkowita n
Wynik: funkcja nie zwraca wartości. W wyniku jej działania otrzymujemy uporządkowany rosnąco ciąg n liczb w tablicy

Algorytm: sortowanie przez wstawianie ciągu A[0], A[1], … , A[n-1]

  1. i1
  2. umieść i-ty element A[i] w odpowiednim miejscu ciągu A[0],…,A[i] tak aby ten ciąg pozostał posortowany
  3. ii + 1
  4. jeżeli i < n wróć do punktu 2

Sortowanie przez wstawianie na folkowo
Insertion sort

Napisz program, który wygeneruje ciąg n losowych wartości rzeczywistych (wykorzystaj w tym celu funkcję do losowania z poprzednich zajęć) a następnie posortuje te liczby za pomocą algorytmu sortowanie przez wstawianie. Ostatecznie program wyświetli posortowany ciąg liczb. Zakładamy, że n<1000.

Program realizujący generowanie ciągu liczb losowych : losowanie.c

Przykład:

n=5
3.53674
65.0011
501.54000
666.5555
991.0000  

Sortowanie przez wstawianie - rozszerzenie

Do pomiaru czasu wykonywania poszczególnych procedur wykorzystaj funkcję clock z biblioteki time.h. Przykład użycia tej funkcji do pomiaru czasu wykonywania pewnego fragmentu programu:

float seconds;
clock_t tik, tak;
 
tik = clock();
 
/*Tutaj umiesc fragment kodu do zmierzenia czasu */
 
tak = clock();
seconds = 1.0*(tak - tik) / CLOCKS_PER_SEC;

Sortowanie przez wstawianie - dalsze rozszerzenie

Rozszerz program w ten sposób aby oprócz porównania czasu wykonania sortowania losowych wartości wyświetlany był również czasu sortowania dla następujących przypadków: