forked from 131/lab4_sort
hihihihi
This commit is contained in:
34
sort.c
34
sort.c
@@ -21,7 +21,16 @@ typedef struct {
|
|||||||
void
|
void
|
||||||
insert_sort(int *arr, size_t sz)
|
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
|
void
|
||||||
@@ -67,7 +76,28 @@ 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 *left = a;
|
||||||
|
int *right = b;
|
||||||
|
int *result = tmp;
|
||||||
|
|
||||||
|
|
||||||
|
while (left < b && right < end) {
|
||||||
|
if (*left <= *right) {
|
||||||
|
*result++ = *left++;
|
||||||
|
} else {
|
||||||
|
*result++ = *right++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
while (left < b) {
|
||||||
|
*result++ = *left++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
while (right < end) {
|
||||||
|
*result++ = *right++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
Reference in New Issue
Block a user