c语言,一维数组元素排序,要求如下: 使用选择法,冒泡法实现 使用函数调用的方式
时间: 2023-08-14 20:05:17 浏览: 53
以下是使用选择排序和冒泡排序对一维数组元素进行排序的 C 语言代码,使用了函数调用的方式:
```c
#include <stdio.h>
void selection_sort(int arr[], int n);
void bubble_sort(int arr[], int n);
int main() {
int arr[] = {5, 2, 7, 3, 9, 1};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// Selection sort
selection_sort(arr, n);
printf("Sorted using selection sort: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// Bubble sort
bubble_sort(arr, n);
printf("Sorted using bubble sort: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void selection_sort(int arr[], int n) {
int i, j, min_idx;
for (i = 0; i < n - 1; i++) {
min_idx = i;
for (j = i + 1; j < n; j++) {
if (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
int temp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = temp;
}
}
void bubble_sort(int arr[], int n) {
int i, j;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
在上述代码中,我们首先定义了两个排序函数 `selection_sort` 和 `bubble_sort`,它们分别使用选择排序和冒泡排序对传入的一维数组进行排序。然后在主函数中,我们定义了一个整型数组 `arr`,并将其传入排序函数中进行排序。最后,我们输出排序后的数组。
值得注意的是,由于我们在函数中传递的是数组的地址,因此函数内对数组的修改也会影响到主函数中的数组。