Go 语言实现冒泡、选择、插入排序

这两天又重新看了看数据结构,重温了一下排序算法,于是先写了这三种经典的排序算法

//冒泡排序
func BubbleSort(array []int)  {
	l:=len(array)
	isChange:=true

	var i,j int
	for i=0; i<l-1 &&isChange; i++ {
		isChange=false
		for j=1; j<l; j++{
			if array[j]<array[j-1] {
				array[j],array[j-1] = array[j-1],array[j]
				isChange=true
			}
		}
	}
}
//选择排序
func SelectionSort(array []int) {
	l:=len(array)
	var min int

	var i,j int
	for i=0; i<l; i++ {
		min = i
		for j=i; j<l; j++ {
			if array[j]<array[min] {
				min = j
			}
		}
		if min != i{
			array[i],array[min] = array[min],array[i]
		}
	}
}
//插入排序
func InsertionSort(array []int) {
	l:=len(array)
	var i,j int
	for i=1; i<l; i++ {
		t:=array[i]
		for j=i; j>0; j-- {
			if t<array[j-1] {
				array[j] = array[j-1]
			}else {
				break
			}
		}
		array[j] = t
	}
}
上一篇:优化程序性能


下一篇:学习TypeScript22(实战TS编写发布订阅模式)