go语言 冒泡排序原理

一、概述

      go语言中的冒泡排序和java中的冒泡排序的原理一样,如果你懂得java的冒泡排序,那么go只是换了一种写法而已。冒泡,简而言之,就是相邻的两个数据进行比较,进行移位,向冒泡一样。例如一个集合有n个数,那么排序的次数就是n-1次排序,每次排序的过程中,这次排序需要进行n-1-i此移位。就是两个for循环,外循环小于n-1,内循环小于n-1-i

二、代码示例

package main

import "fmt"

import "math/rand"

import "time"

func main() {

	// 设置种子
	rand.Seed(time.Now().UnixNano())
	var arr [10]int
	n := len(arr)

	for i := 0; i < n; i++ {
		arr[i] = rand.Intn(500)
		fmt.Printf("%d ,", arr[i]) // 产生在500以内的随机数
	}
	fmt.Printf("\n")

	// 冒泡排序:相邻两个数进行比较,大于则进行交换。升序
	for i := 0; i < n-1; i++ {
		for j := 0; j < n-1-i; j++ {
			if arr[j] > arr[j+1] {
				arr[j], arr[j+1] = arr[j+1], arr[j]
			}
		}
	}
	fmt.Println("排序后的结果:")
	for i := 0; i < n; i++ {
		fmt.Printf("%d ,", arr[i])
	}
	fmt.Printf("\n")

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值