选择排序(golang实现)

 选择排序是将数组中,如果下标为1的数小于小标为0的数,则进行交换,依次类推。

package main

import "fmt"

func main() {
	arr := []int{10, 3, 0, -9, 2, 100, -22, 54, 23, 7}
	fmt.Println(arr)
	selectionSort(arr)
	fmt.Println(arr)
}

// 选择排序
func selectionSort(arr []int) {
	//当数组为空或数组长度小于2时,无法排序
	if arr == nil || len(arr) < 2 {
		return
	}
	n := len(arr)
	for i := 0; i < n-1; i++ {
		minIndex := i                //默认0索引的值为最小值
		for j := i + 1; j < n; j++ { //i+1与i进行比较
			if arr[j] < arr[minIndex] { //如果后面的数大于前面的数,则将后面的索引值赋给min
				minIndex = j
			}
		}
		//进行交换
		swap(arr, i, minIndex)
	}
}

func swap(arr []int, i int, j int) {
	arr[i], arr[j] = arr[j], arr[i]
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值