冒泡排序(Bubble Sort)是一种简单的排序算法,它通过重复地遍历待排序的元素列表,依次比较相邻的两个元素,并根据它们之间的大小关系交换位置。每次遍历结束后,最大的未排序元素会像气泡一样浮到序列...
冒泡排序(Bubble Sort)是一种简单的排序算法,它通过重复地遍历待排序的元素列表,依次比较相邻的两个元素,并根据它们之间的大小关系交换位置。每次遍历结束后,最大的未排序元素会像气泡一样浮到序列的末端。因此,冒泡排序也被称为“气泡法排序”。
冒泡排序的基本步骤如下:
n-1,其中n是数组的长度。以下是一个使用C语言实现的冒泡排序算法示例,该示例将一个整型的一维数组进行升序排列:
#include
void bubbleSort(int arr[], int n) { int i, j, temp; for (i = 0; i < n - 1; i++) { int flag = 0; // 标记是否发生了交换 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; flag = 1; // 标记发生了交换 } } if (!flag) { break; // 若无交换,提前退出 } }
}
int main() { int nums[] = {64, 34, 25, 12, 22, 11, 90}; int len = sizeof(nums) / sizeof(nums[0]); bubbleSort(nums, len); printf("Sorted array: \n"); for (int i = 0; i < len; i++) { printf("%d ", nums[i]); } printf("\n"); return 0;
} bubbleSort函数接受一个整型数组和数组的长度作为参数。flag来判断是否发生了交换,如果没有交换,则说明数组已经有序,可以提前结束排序。通过以上步骤,冒泡排序算法可以将数组中的元素按照从小到大的顺序排列。
冒泡排序是一种简单且易于理解的排序算法。虽然它的效率相对较低,但在某些情况下,例如小规模数组的排序,它仍然是一个不错的选择。希望本文能够帮助您轻松掌握冒泡排序算法,并能够在C语言编程中灵活运用。