zoukankan      html  css  js  c++  java
  • 排序算法——直接插入排序

    1、算法介绍

    (1)待排序序列的第一个元素当做已排序序列,第二个元素至最后一个元素当做未排序序列

    (2)遍历未排序序列,将元素与已排序序列比较,插入到已排序序列中

    (3)若未排序的元素与已排序序列中某元素相等,则将未排序的该元素插入已排序相等元素后面

    2、代码实现

    2.1、golang

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	slice := []int{5, 3, 12, 54, 23, 12, 6, 9, 19}
    	SortInsert(slice)
    	fmt.Println(slice)
    }
    
    //直接插入排序
    func SortInsert(slice []int) {
    	n := len(slice)
    	for i := 1; i < n; i++ {
    		for j := i; j >= 1 && slice[j-1] > slice[j]; j-- {
    			slice[j], slice[j-1] = slice[j-1], slice[j]
    		}
    	}
    }
    

    2.2、python3

    # 直接插入排序
    def sort_insert(arr):
        n = len(arr)
        for i in range(1, n):
            for j in range(i, 0, -1):
                if arr[j - 1] > arr[j]:
                    arr[j], arr[j - 1] = arr[j - 1], arr[j]
                else:
                    break
    
    
    if __name__ == '__main__':
        arr = [5, 3, 12, 54, 23, 12, 6, 9, 19]
        sort_insert(arr)
        print(arr)
    

      

    笃志:“博学而笃志,切问而近思,仁在其中矣。”
    弘毅:“士不可以不弘毅,任重而道远。”
    止于至善:“大学之道,在明明德,在亲民,在止于至善。”
    关注:笃志弘毅,止于至善
  • 相关阅读:
    设置linux session 编码
    在masterpage中添加对usercontrol的引用
    首页的sitecontent地址
    iis的路径
    设置repeater每行多少个的方法
    updatepannel的使用
    取caml查询结果的前多少行
    设置视频自动播放
    网站集与网站
    notepad++ 死机 找到没保存的文件
  • 原文地址:https://www.cnblogs.com/dzhy/p/10937668.html
Copyright © 2011-2022 走看看