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")

}

猜你喜欢

转载自blog.csdn.net/m0_38068812/article/details/84996791