Go-插入排序

// InsertSort 插入排序
// 思路:
// 1. 第一个元素默认是已经排好序的
// 2. 从第二个元素开始,依次比较前面一个元素中,如果小于则交换位置
// 插入排序思路: 将一个元素插入到已经排好序的序列中

// 插入排序对比冒泡排序
// 插入排序是将元素在已经排好序的元素中交换位置
// 冒泡排序是在未排好序的元素中交换我位置

func InsertSort(data []int)  {
	// i是添加新的排序元素
	for i := 0; i < len(data); i ++ {
		tmp := data[i]
		for j := i; j >= 0 ; j -- {
			// 放到第一个
			if j == 0 {
				data[0] = tmp
				break
			}
			if data[j-1] > tmp {
				data[j] = data[j-1]
			} else {
				// 放到最后一个
				data[j] = tmp
				break
			}

		}

	}
}

  

posted @ 2021-02-21 18:22  梦_鱼  阅读(83)  评论(0编辑  收藏  举报