zoukankan      html  css  js  c++  java
  • go排序 插入排序

    package main
    
    import "fmt"
    
    func main() {
    	var list = []int{3,4,11,223,4,5,-1,5,4,3,2}
    	insertSort(list)
    	fmt.Println(list)
    }
    
    //通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。可以理解为玩扑克牌时的理牌;
    // 单指针
    func insertSort(arr []int) {
    	n := len(arr)
    	for i := 1; i < n; i++ {
    
    		temp := arr[i] // 待插入的数据
    		j:= i-1
    		for ;j>=0;j--{
    			fmt.Println(temp,arr[j])
    
    			if arr[j] > temp{
    				arr[j+1] = arr[j] // 外层的每个数都从内层的最后一个数开始对比 如果发现比他小 就把当前位置往后移动 因为最后一个是带插入的位置 已经空出来了
    			} else {
    				break
    			}
    		}
    
    		if j+1 !=i {  // 最终跳出循环的条件就是找到了一个位置比带插入的数据还大的他一前一个数字 满足的位置是他的后一位
    			arr[j+1] = temp
    		}
    	}
    
    
    }
    

      

  • 相关阅读:
    密码加密
    注册视图
    session会话
    验证码功能
    使用Django表单替代html表单
    实现登陆视图功能
    设计登陆需求页面
    配置视图
    配置数据库
    npm 学习
  • 原文地址:https://www.cnblogs.com/brady-wang/p/15039492.html
Copyright © 2011-2022 走看看