Go语言冒泡排序求逆序数

寅恪光潜
深度学习领域优质创作者
博客专家认证
2022-12-16 18:17:48

Go语言的冒泡排序(附:深拷贝与浅拷贝)

上一篇知道了冒泡排序,现在通过冒泡排序来求数组的逆序数。何为逆序数:
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数
逆序数为偶数的排列称为偶排列;逆序数为奇数的排列称为奇排列。 如2431中,21,43,41,31是逆序,逆序数是4,为偶排列。

那逆序数的方法通过冒泡来实现就很简单了,也是两个循环,里面循环是第一轮从一个元素与后面元素一个一个比较,如果比后面的大就加1做个计数,第二轮从第二个元素与后面元素分别一一的去比较,一直这样循环完毕,就把逆序数找出来了

package main

import "fmt"

func bubbleSort(arr []int) int {
	cnt := 0
	len := len(arr) - 1
	for i := 0; i < len; i++ {
		for j := i; j < len; j++ {
			if arr[i] > arr[j+1] {
				cnt = cnt + 1
			}
		}
	}
	return cnt
}

func main() {
	arr := []int{5, 3, 6, 2, 1, 4}
	arr2 := bubbleSort(arr)
	fmt.Printf("%v的逆序数:%v\n", arr, arr2)
}

 

[5 3 6 2 1 4]的逆序数:10  

 

...全文
187 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

197

社区成员

发帖
与我相关
我的任务
社区描述
从零开始的小白到进阶成技术达人。 一起学习,一起进步。
golanggo1.19 个人社区 贵州省·贵阳市
社区管理员
  • 寅恪光潜
  • 网络豆
  • Somnus_小凯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Go语言集各语言优势之大成,从基础到进阶

一起学习,一起进步,成为技术达人!

试试用AI创作助手写篇文章吧