Golang 数组元素排序


冒泡排序

package main

import "fmt"

func main() {
	arrlist := [10]int{21,655,35,85,64,62,856,9748,963}
	fmt.Println("原数组元素为:",arrlist)
	for i:=0;i<len(arrlist)-1;i++ {
		for j:=0;j<len(arrlist)-1;j++ {
			if arrlist[j] > arrlist[j+1] {
				arrlist[j],arrlist[j+1] = arrlist[j+1],arrlist[j]
			}
		}
	}
	fmt.Println("排序后的数组为:",arrlist)
}

// 结果
原数组元素为: [21 655 35 85 64 62 856 9748 963 0]
排序后的数组为: [0 21 35 62 64 85 655 856 963 9748]


// -----------------用户交互输入-------------------- //
package main

import "fmt"

func main() {
	arrlist := [5]float64{}

	for i:=0;i<len(arrlist);i++ {
		var num float64
		fmt.Printf("请输入第 %d 个数字:",i+1)
		fmt.Scan(&num)
		arrlist[i] = num
	}
	fmt.Println("原数组内容为:",arrlist)
        // 外层循环定义比较轮数
	for i:=0;i<len(arrlist)-1;i++ {
                // 内存循环定义每轮比较次数
		for j:=0;j<len(arrlist)-1;j++ {    // 或者:for j:=0;j<len(arrlist)-(i+1);j++
			if arrlist[j] > arrlist[j+1] {
                                // 两数交换
				arrlist[j],arrlist[j+1] = arrlist[j+1],arrlist[j]
			}
		}
	}
	fmt.Println("排序后的数组为:",arrlist)
}

求最大值最小值

package main

import "fmt"

func main() {
	var (
		tmp int
		num int
		numbers [5]int
	)

	for i:=0;i<5;i++ {
		fmt.Printf("请输入第 %d 个数字:",i+1)
		fmt.Scan(&num)
		numbers[i] = num
	}
	fmt.Println("数据录入完成!")
	tmp=numbers[0]
	for j:=0;j<5;j++ {
		if numbers[j] > tmp {    // 改成 < 就是求最小值
			tmp = numbers[j]
		} else {
			continue
		}
	}
	fmt.Println("最大值是:",tmp)
}

// 结果
请输入第 1 个数字:5
请输入第 2 个数字:3
请输入第 3 个数字:6
请输入第 4 个数字:7
请输入第 5 个数字:8
数据录入完成!
最大值是: 8
posted @ 2022-03-27 15:00  公博义  阅读(1084)  评论(0编辑  收藏  举报