forked from 131/lab4_sort
Gotovoe zadanie
This commit is contained in:
39
sort.c
39
sort.c
@@ -21,7 +21,17 @@ typedef struct {
|
|||||||
void
|
void
|
||||||
insert_sort(int *arr, size_t sz)
|
insert_sort(int *arr, size_t sz)
|
||||||
{
|
{
|
||||||
// <YOURCODE>
|
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
|
void
|
||||||
@@ -33,7 +43,7 @@ bubble_sort(int *arr, size_t sz)
|
|||||||
for (i = 0; i < sz; i++) {
|
for (i = 0; i < sz; i++) {
|
||||||
for (j = i + 1; j < sz; j++) {
|
for (j = i + 1; j < sz; j++) {
|
||||||
if (arr[i] > arr[j]) {
|
if (arr[i] > arr[j]) {
|
||||||
tmp = arr[i];
|
tmp = arr[i];
|
||||||
arr[i] = arr[j];
|
arr[i] = arr[j];
|
||||||
arr[j] = tmp;
|
arr[j] = tmp;
|
||||||
}
|
}
|
||||||
@@ -67,8 +77,29 @@ bubble_sort(int *arr, size_t sz)
|
|||||||
static void
|
static void
|
||||||
_merge(int *tmp, int *a, int *b, int *end)
|
_merge(int *tmp, int *a, int *b, int *end)
|
||||||
{
|
{
|
||||||
// <YOURCODE>
|
int a1=0, b1=0, tmp1=0;
|
||||||
}
|
int razmera=b-a, razmerb=end-b;
|
||||||
|
while (razmera>a1 && razmerb>b1)
|
||||||
|
{
|
||||||
|
if (a[a1]<b[b1])
|
||||||
|
{
|
||||||
|
tmp[tmp1++] = a[a1++];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tmp[tmp1++] = b[b1++];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (razmera!=a1)
|
||||||
|
{
|
||||||
|
tmp[tmp1++]=a[a1++];
|
||||||
|
}
|
||||||
|
while (razmerb!=b1)
|
||||||
|
{
|
||||||
|
tmp[tmp1++]=a[b1++];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_merge_sort_int(int *tmp, int *arr, size_t n)
|
_merge_sort_int(int *tmp, int *arr, size_t n)
|
||||||
|
|||||||
Reference in New Issue
Block a user