网站开发颜色,赣州广播电视台,鞍山千山,牡丹江住房和城乡建设厅网站冒泡排序是一种简单但效率较低的排序算法#xff0c;它重复地走访过要排序的数列#xff0c;一次比较两个元素#xff0c;如果它们的顺序错误就把它们交换过来。具体实现如下#xff1a;
算法步骤#xff1a; 比较相邻的元素#xff1a;从第一个元素开始#xff0c;依次…冒泡排序是一种简单但效率较低的排序算法它重复地走访过要排序的数列一次比较两个元素如果它们的顺序错误就把它们交换过来。具体实现如下
算法步骤 比较相邻的元素从第一个元素开始依次比较相邻的两个元素如果顺序不正确就交换它们的位置直到将最大的元素移到数列末尾。 重复上述步骤对剩下的元素重复上述步骤每次遍历都能确定一个最大值并将其放置到正确的位置。 重复直到排序完成持续以上步骤直到所有元素都已排好序。
Java 代码示例
public class BubbleSort {public static void bubbleSort(int[] arr) {int n arr.length;for (int i 0; i n - 1; i) {for (int j 0; j n - i - 1; j) {if (arr[j] arr[j 1]) {// 交换 arr[j] 和 arr[j1]int temp arr[j];arr[j] arr[j 1];arr[j 1] temp;}}}}public static void main(String[] args) {int[] arr {64, 34, 25, 12, 22, 11, 90};bubbleSort(arr);System.out.println(排序后的数组);for (int i : arr) {System.out.print(i );}}
}详细讲解
冒泡排序的外层循环控制了总共需要进行几轮比较对于长度为 n 的数组需要进行 n-1 轮比较。内层循环中的 j 控制了每一轮比较中的具体操作每轮比较将最大的数交换到最后因此每次都可以将一个元素放置到正确的位置上。每次比较都是相邻两个元素的比较如果前一个元素大于后一个元素则进行交换。最终经过多轮比较数组将被排列成正确的顺序。
冒泡排序的时间复杂度为 O(n^2)其中 n 为数组的长度。虽然它简单易懂但对于大型数据集合并不适用因为其效率较低。