C语言数组的冒泡排序和数字的冒泡排序一样吗
时间: 2023-12-15 19:32:53 浏览: 23
是的,C语言数组的冒泡排序和数字的冒泡排序是一样的。冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。在C语言中,可以使用for循环嵌套实现冒泡排序,具体实现方法可以参考引用中的代码。
相关问题
c语言结构体数组冒泡排序
以下是C语言结构体数组冒泡排序的示例代码:
```c
#include <stdio.h>
#include <string.h>
struct Student {
char name[20];
int score;
};
void bubbleSort(struct Student arr[], int n) {
int i, j;
struct Student temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j].score > arr[j + 1].score) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
struct Student students[5] = {
{"Tom", 80},
{"Jerry", 70},
{"Alice", 90},
{"Bob", 85},
{"David", 75}
};
int i;
printf("Before sorting:\n");
for (i = 0; i < 5; i++) {
printf("%s: %d\n", students[i].name, students[i].score);
}
bubbleSort(students, 5);
printf("After sorting:\n");
for (i = 0; i < 5; i++) {
printf("%s: %d\n", students[i].name, students[i].score);
}
return 0;
}
```
该示例代码中定义了一个结构体`Student`,包含学生姓名和分数两个成员变量。`bubbleSort`函数实现了冒泡排序算法,其中`arr`参数为结构体数组,`n`参数为数组长度。在`main`函数中定义了一个包含5个学生信息的结构体数组`students`,并输出排序前和排序后的学生信息。
c语言实现数组冒泡排序
以下是C语言实现数组冒泡排序的代码:
```c
#include <stdio.h>
void bubble_sort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = { 5, 2, 1, 3, 4 };
int n = sizeof(arr) / sizeof(arr[0]);
int i;
printf("Original array: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
bubble_sort(arr, n);
printf("Sorted array: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果:
```
Original array: 5 2 1 3 4
Sorted array: 1 2 3 4 5
```