冒泡排序算法的时间复杂度和空间复杂度分析
冒泡排序的时间复杂度为O(n^2),其中n是数组的长度。因为有两层嵌套的循环,外层循环执行n次,内层循环执行n-1、n-2、...、1次,总共执行了n(n-1)/2次比较和交换操作。
空间复杂度为O(1),因为只使用了常数个临时变量来进行交换操作,没有使用额外的空间。
冒泡排序的基本思想是每次比较相邻的两个元素,如果它们的顺序错误则交换位置,通过多次遍历和交换操作,将最大的数逐渐'冒泡'到数组的末尾。算法的时间复杂度较高,适用于小规模的数据排序。
public class InventorySort {
public static void main(String[] args) {
int[] inventory = {5, 8, 2, 10, 3};
inventorySort(inventory);
for (int i = 0; i < inventory.length; i++) {
System.out.print(inventory[i] + " ");
}
}
// 库存排序方法
public static void inventorySort(int[] inventory) {
for (int i = 1; i < inventory.length; i++) {
for (int j = 0; j < inventory.length - i; j++) {
if (inventory[j] < inventory[j + 1]) {
int temp = inventory[j];
inventory[j] = inventory[j + 1];
inventory[j + 1] = temp;
}
}
}
}
}
原文地址: https://www.cveoy.top/t/topic/wF6 著作权归作者所有。请勿转载和采集!