冒泡排序是一种排序算法,它通过交换顺序错误的元素来工作。在多次遍历中,它检查相邻元素的顺序是否正确(递增)。
冒泡排序的时间复杂度为O(n ^ 2),因为它需要两个嵌套循环才能检查相邻元素。
例如,让我们看下面的未排序数组-
22 15 11 45 13
冒泡排序算法首先遍历整个数组,然后在另一个循环中检查相邻元素是否有序。
因此,对元素进行排序后,
11 13 15 22 45
在两个嵌套循环中,将每个元素与其相邻元素进行比较。
如果该元素小于上一个元素,则对其进行交换。
打印数组。
冒泡排序算法的实现
package main
import "fmt"
func BubbleSort(array[] int)[]int {
for i:=0; i< len(array)-1; i++ {
for j:=0; j < len(array)-i-1; j++ {
if (array[j] > array[j+1]) {
array[j], array[j+1] = array[j+1], array[j]
}
}
}
return array
}
func main() {
array:= []int{11, 14, 3, 8, 18, 17, 43};
fmt.Println(BubbleSort(array))
}
输出结果
运行上面的代码将对给定的未排序数组进行排序,并按如下&miuns;打印输出:
3 8 11 14 18 17 43
嗨,我用冒泡排序查看了其他帖子,但解决方案在我的例子中不起作用:所以算法在我循环时重复了几次之后才起作用。但我如何在不使用输入的情况下做到这一点?这是我的代码,你知道我的意思:
我需要使用气泡排序法按名称对我的杂货库存进行排序。 显然,我的代码不是按名字排序的 顺便说一句,库存存储的数据来自文件输入。 这是我的代码。 这是我的比较方法从我的超类(杂货店项目)
所以我的代码有问题。我必须编写一个程序来对一个外部文本文件进行排序(基本上是一个按随机顺序排列的随机数列表)。所以我试着按照教授的步骤去做,即使我做了,我也没有得到正确的输出。输出应该如下所示: 1 2 2 2 3 3 5 5 6 6 11 13 13 13 13 16 17 17 19 25 27 27 33 34 37 37 43 45 49 51 52 54 57 58 60 63 64 6
我是Java新手,所以一直在尝试将一些旧的JS练习翻译成Java。
我试图在sortBabies中按字母顺序排序婴儿,但我无法交换位置,因为错误出现为“ArrayList类型中的方法集(int, Baby)不适用于参数(int, string)”。我将名称1和名称2设置为字符串值,以便我能够比较,但现在我无法交换位置。
定义 气泡组件。 图片展示 代码演示 import Popover from 'pile/dist/components/popover' const {Tooltip} = Popover <Tooltip overlay={"说明文字"} placement='left' isShow={popleftshow} idName='newIndex' setTooltipC