diff --git a/sort.c b/sort.c index b43ee6e..0ab2110 100644 --- a/sort.c +++ b/sort.c @@ -21,7 +21,17 @@ typedef struct { void insert_sort(int *arr, size_t sz) { - // + for (size_t i = 1; i < sz; i++) { + int key = arr[i]; + size_t j = i; + + + while (j > 0 && arr[j - 1] > key) { + arr[j] = arr[j - 1]; + j--; + } + arr[j] = key; + } } void @@ -33,7 +43,7 @@ bubble_sort(int *arr, size_t sz) for (i = 0; i < sz; i++) { for (j = i + 1; j < sz; j++) { if (arr[i] > arr[j]) { - tmp = arr[i]; + tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } @@ -67,8 +77,29 @@ bubble_sort(int *arr, size_t sz) static void _merge(int *tmp, int *a, int *b, int *end) { - // -} + int a1=0, b1=0, tmp1=0; + int razmera=b-a, razmerb=end-b; + while (razmera>a1 && razmerb>b1) + { + if (a[a1]