Golang(排序篇) —— 冒泡排序

冒泡排序思想

冒泡排序算法的原理如下:

  • 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  • 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  • 针对所有的元素重复以上的步骤,除了最后一个。
  • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
  • Golang(排序篇) —— 冒泡排序_时间复杂度

时间复杂度

最理想情况:O(n)
最坏情况:O(n^2)

Golang代码

package main

import "fmt"

func maopaoSort(nums []int) []int {
	length := len(nums)
	for i:=0;i<length-1;i++{
		for j:=i+1;j<length;j++{
			if nums[i] > nums[j] {
				// 两两比较
				nums[i], nums[j] = nums[j], nums[i]
			}
		}
	}
	return nums
}



func main() {
	nums := []int{1,2,5,3,4}
	result := maopaoSort(nums)
	fmt.Println(result)
}

运行结果
Golang(排序篇) —— 冒泡排序_时间复杂度_02

 

关于作者
Golang(排序篇) —— 冒泡排序_排序算法_03