c冒泡法排序
时间: 2023-11-06 12:13:46 浏览: 37
好的,冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就交换它们的位置,直到没有元素需要交换,这个算法的名字由来是因为越小的元素会经过交换慢慢“浮”到数列的顶端。以下是C语言实现冒泡排序的代码:
```c
void bubbleSort(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;
}
}
}
}
```
其中,`arr`表示待排序的数组,`n`表示数组的长度。在这段代码中,我们使用了两个嵌套的循环来遍历整个数组,并比较相邻的两个元素。如果前一个元素比后一个元素大,则交换它们的位置,直到所有元素都被比较过一遍。时间复杂度为$O(n^2)$,是一种比较低效的排序算法,但是由于其简单易懂、易于实现,仍然被广泛使用。
相关问题
C语言冒泡法排序举例
以下是C语言冒泡排序的一个例子:
```c
#include <stdio.h>
void bubbleSort(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;
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr)/sizeof(arr[0]); bubbleSort(arr, n);
printf("Sorted array: \n");
for (int i=0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这个例子演示了如何使用冒泡排序算法对一个整数数组进行排序。冒泡排序的基本思想是通过相邻元素的比较和交换来实现排序。在每一轮排序中,将最大的元素冒泡到数组的末尾。重复这个过程,直到整个数组都有序。
c语言冒泡法排序10个数
下面是C语言实现冒泡排序算法对10个数进行排序的代码:
```c
#include <stdio.h>
int main() {
int arr[10] = {5, 3, 9, 1, 7, 2, 8, 4, 6, 0};
int i, j, temp;
// 冒泡排序
for(i=0; i<9; i++) {
for(j=0; j<9-i; j++) {
if(arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
// 输出排序结果
printf("排序后的数组:");
for(i=0; i<10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:
```
排序后的数组:0 1 2 3 4 5 6 7 8 9
```
在上述代码中,我们创建了一个长度为10的数组,并赋予一些随意的值。然后我们使用了两个for循环来进行冒泡排序,将数组中的元素从小到大排序。最后,我们输出排好序后的数组。