Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d34b1f4339 | ||
|
|
5978caf342 |
42
sort.c
42
sort.c
@@ -22,6 +22,16 @@ void
|
||||
insert_sort(int *arr, size_t sz)
|
||||
{
|
||||
// <YOURCODE>
|
||||
int i, j;
|
||||
for (i = 1; i < sz; i++) {
|
||||
int key = arr[i];
|
||||
j = i - 1;
|
||||
while (j >= 0 && arr[j] > key) {
|
||||
arr[j + 1] = arr[j];
|
||||
j--;
|
||||
}
|
||||
arr[j + 1] = key;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
@@ -64,10 +74,40 @@ bubble_sort(int *arr, size_t sz)
|
||||
| 1 | 2 | 3 | 4 | 5 | 6 |
|
||||
|
||||
*/
|
||||
|
||||
static void
|
||||
_merge(int *tmp, int *a, int *b, int *end)
|
||||
{
|
||||
// <YOURCODE>
|
||||
// <YOURCODE>
|
||||
/*
|
||||
* Функция для слияния двух отсортированных массивов в один.
|
||||
*/
|
||||
|
||||
int a1 = 0, b1 = 0, tmp1 = 0;
|
||||
int ra = b - a, rb = end - b;
|
||||
while (ra > a1 && rb > b1)
|
||||
{
|
||||
if (a[a1] < b[b1])
|
||||
{
|
||||
tmp[tmp1++] = a[a1++];
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp[tmp1++] = b[b1++];
|
||||
}
|
||||
}
|
||||
while (ra != a1)
|
||||
{
|
||||
tmp[tmp1] = a[a1];
|
||||
a1++;
|
||||
tmp1++;
|
||||
}
|
||||
while (rb != b1)
|
||||
{
|
||||
tmp[tmp1] = b[b1];
|
||||
b1++;
|
||||
tmp1++;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
Reference in New Issue
Block a user