插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。
这里有一组数据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) }
扫描二维码关注公众号,回复:
712810 查看本文章