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

    #插入排序法:

    原理:是通过构建有序序列,对于未排序数据,在已排序序列中 从后向前 扫描,找到相应位置并插入。

    #插入排序法一:有小到大排序

    def insertSort(arr):
      n=len(arr) #获取数列的元素个数
      for i in range(1,n):
        key=arr[i] #从数列的第二个元素开始,依次取出,与它的前面的元素值作比较

        j=i-1 #获取key前面的值的索引下标
        while j>=0 and key < arr[j]:#判断key与它前面的元素相比较,如果前面的值大于key
          arr[j+1]=arr[j] #则把前面的值后移到key值的位置
          j-=1 #获取再前面的值的索引下标,实现key值与其前面的值的循环比较
        arr[j+1]=key

    #测试
    arr=[12,11,13,5,6]
    insertSort(arr)

    for i in range(len(arr)):
    print("%d" %arr[i])

    #插入排序法二:有大到小排序

    def insertSort(arr):
      n=len(arr) #获取数列的元素个数
      for i in range(1,n):
        key=arr[i] #从数列的第二个元素开始,依次取出,与它的前面的元素值作比较

        j=i-1 #获取key前面的值的索引下标
        while j>=0 and key > arr[j]:#判断key与它前面的元素相比较,如果前面的值大于key
          arr[j+1]=arr[j] #则把前面的值后移到key值的位置
          j-=1 #获取再前面的值的索引下标,实现key值与其前面的值的循环比较
        arr[j+1]=key

    #测试
    arr=[12,11,13,5,6]
    insertSort(arr)

    for i in range(len(arr)):
    print("%d" %arr[i])

  • 相关阅读:
    IP保留地址
    HTML5读取本地文件
    angularjs中动态为audio绑定src
    canvas移动端常用技巧图片loading
    angularjs三级联动
    angular实现select的ng-options
    ng-bind-html在ng-repeat中问题的解决办法
    JS判断是否在微信浏览器打开
    angular实现select的ng-options
    创建 AngularJS 自定义过滤器,带自定义参数
  • 原文地址:https://www.cnblogs.com/xiangers/p/15429271.html
Copyright © 2011-2022 走看看