冒泡排序c语言分别从小到大和从大的小
时间: 2023-08-31 22:03:43 浏览: 99
冒泡排序是一种简单的排序算法,它可以按照升序(从小到大)或降序(从大到小)的方式对一串数字进行排序。下面分别用C语言的代码来实现这两种排序方式:
从小到大的冒泡排序:
```c
#include <stdio.h>
void bubbleSortAscending(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, 9, 1, 3};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSortAscending(arr, n);
printf("从小到大的冒泡排序结果:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
从大到小的冒泡排序:
```c
#include <stdio.h>
void bubbleSortDescending(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, 9, 1, 3};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSortDescending(arr, n);
printf("从大到小的冒泡排序结果:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
上述代码分别使用了两个嵌套的循环来逐个比较数组中的元素,并根据条件交换位置,从而实现冒泡排序。其中,从小到大排序中的判断条件是`arr[j] > arr[j+1]`,从大到小排序中的判断条件则是`arr[j] < arr[j+1]`。最后,分别输出排序结果即可。
阅读全文