冒泡排序算法详解 - 原理、实现和时间复杂度
冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。重复地进行以上步骤直到整个数列排序完成。
具体实现过程如下:
-
比较相邻的元素,如果前一个元素比后一个元素大,就交换这两个元素的位置。
-
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步完成后,最后的元素应该是最大的数。
-
针对所有的元素重复以上的步骤,除了最后一个。
-
持续每次对越来越少的元素重复上述步骤,直到没有任何一对数字需要比较。
实现代码如下:
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;
}
}
}
}
时间复杂度为 O(n^2)。
原文地址: https://www.cveoy.top/t/topic/lRgv 著作权归作者所有。请勿转载和采集!