6-1 定义两个函数:sort函数用于给一个数组按照升序排序,merge函数用于将数组a和数组b按次序合并到数组c中。
时间: 2023-09-19 11:10:53 浏览: 53
以下是两个函数的定义:
```c
// sort函数,给数组按升序排序
void sort(int arr[], int len) {
int i, j, temp;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// merge函数,将数组a和数组b按次序合并到数组c中
void merge(int a[], int a_len, int b[], int b_len, int c[]) {
int i = 0, j = 0, k = 0;
while (i < a_len && j < b_len) {
if (a[i] < b[j]) {
c[k++] = a[i++];
} else {
c[k++] = b[j++];
}
}
while (i < a_len) {
c[k++] = a[i++];
}
while (j < b_len) {
c[k++] = b[j++];
}
}
```
sort函数使用冒泡排序算法,时间复杂度为O(n^2)。
merge函数使用两个指针i和j分别指向数组a和数组b的起始位置,比较a[i]和b[j]的大小,将小的放到数组c中,并将指针i或j向后移动一位,直到任意一个数组遍历完。然后将另一个数组中未遍历的元素依次放入数组c中。时间复杂度为O(m+n),其中m和n分别为数组a和数组b的长度。