冒泡排序是一种简单排序算法,通过反复比较相邻元素并交换较大的元素,将较小的元素“冒泡”到前面位置。算法使用双重循环,外层循环遍历数组,内层循环比较相邻元素。当相邻元素较小元素在后时,交换这两个元素。此过程重复,直到数组完全排序。冒泡排序的时间复杂度为 o(n²),空间复杂度为 o(1)。
C 语言中冒泡排序的使用
冒泡排序是一种简单的排序算法,它通过比较相邻元素并不断将较小的元素“冒泡”到前面的位置来对数组进行排序。
使用方法:
void bubbleSort(int arr[], int n) {
for (int i = 0; i arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
算法流程:
- 外层循环 (i) 遍历数组中的元素,从第一个元素开始,直到倒数第二个元素。
- 内层循环 (j) 遍历数组中尚未排序的元素,从第一个元素开始,直到外层循环指针指向的元素。
- 比较相邻元素:如果 arr[j] 大于 arr[j + 1], 则交换这两个元素。
- 重复步骤 2 和 3:继续内层循环,直到数组中所有相邻元素都被正确排序。
- 重复步骤 1 和 2:继续外层循环,直到数组中所有元素都被正确排序。
时间复杂度:
冒泡排序的时间复杂度为 O(n²),其中 n 是数组中元素的数量。
空间复杂度:
冒泡排序的额外空间复杂度为 O(1),因为它仅使用一个临时变量进行元素交换。