排序算法--插入排序

      插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。

这里有一组数据4, 25, 53, 6, 33

1、首先我们拿出一个4,放在首位

4 25 53 6 33

2、再拿出一个25

4   53 6 33
4 25 53 6 33

3、拿出一个53

4 25   6 33
4 25 53 6 33

4、拿出一个6

4 25 53   33
4 6 25 53 33

5、最后拿出一个33

4 6 25 53  
4 6 25 33 53

 

下面是代码实现:

package main

import (
	"fmt"
)

func main() {
	arr := []int64{4, 25, 53, 6, 33}
	test2(arr)
}

func test2(arr []int64) {
	var temp int64
	var i, j, num int
	num = len(arr)

	for i = 0; i < num; i++ {
		temp = arr[i]
		fmt.Println("temp", temp, i)
		for j = i; j > 0 && arr[j-1] > temp; j-- {
			arr[j] = arr[j-1]
			fmt.Println("arr[j] ==", arr[j], j)
		}
		arr[j] = temp
	}
	fmt.Println(arr)
}

 

 

猜你喜欢

转载自feifeiwoye.iteye.com/blog/2265586