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

    插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

    插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。

    1. 算法步骤

    1. 将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。

    2. 从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)

    2. 动图演示

      

    3. 代码实现

    # _*_ coding:utf8 _*_ 
    
    def insertionSort(arr):
        for i in range(len(arr)):
            preIndex = i - 1
            current = arr[i]
            while preIndex >= 0 and arr[preIndex] > current:
                arr[preIndex + 1] = arr[preIndex]
                preIndex -= 1
            arr[preIndex +1 ] = current
        return arr
    
    
    if __name__ == "__main__":
        arr = [3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48] 
        arr_s = insertionSort(arr)
        print(arr_s)
  • 相关阅读:
    input的button和submit的区别
    2016011993 顾思宇 散列函数的应用及其安全性
    结对项目作业报告——四则运算web项目
    读《构建之法》4、17章有感
    2016011993+小学四则运算练习软件项目报告
    读《构建之法》1、2、16章有感
    码出生活
    四则运算
    信息安全作业
    结对项目博客
  • 原文地址:https://www.cnblogs.com/zhouziyuan/p/11820797.html
Copyright © 2011-2022 走看看