zoukankan      html  css  js  c++  java
  • python排序算法

    1.冒泡排序

    算法描述:

    1.比较相邻两个元素的大小,如果第一个比第二个大,就互相交换;

    2.从第一个元素到结尾的最后一对,重复上面的步骤。这样最大的元素就在最后一个;

    3.从头重复上面的步骤,除了最后一个元素;

    4.重复上面的步骤,直至排序完成。 

     

    2.选择排序

    算法描述:

    1.初始状态:无序区为R[1…n],有序区为空;

    2.将有序区里的最小的元素取出,依次存放到有序区内;

    3.(n-1)趟结束,数组完成有序化。

     

     

     

    算法分析:表现最稳定的排序算法之一,始终O(n^2)的时间复杂度。不占用额外的内存空间。

     

     

    3.插入排序

    算法描述:

    1.从第一个元素开始,该元素可以认为已经被排序;

    2.取出下一个元素,在已经排序的元素序列里从后往前扫描;

    3.如果该元素(已排序的)大于取出的新元素,则将该元素移动到下一个位置;

    4.重复步骤3,找到已排序的元素小于或等于新元素的位置;

    5.将新元素插入;

    6.从未排序的起始位置重复步骤2-5

     

     

    算法分析:通常采用in-place排序(即只需要用到O(1)的额外空间的排序)

  • 相关阅读:
    yzoj P2344 斯卡布罗集市 题解
    yzoj P2350 逃离洞穴 题解
    yzoj P2349 取数 题解
    JXOI 2017 颜色 题解
    NOIP 2009 最优贸易 题解
    CH 4302 Interval GCD 题解
    CH4301 Can you answer on these queries III 题解
    Luogu2533[AHOI2012]信号塔
    Luogu3320[SDOI2015]寻宝游戏
    Luogu3187[HNOI2007]最小矩形覆盖
  • 原文地址:https://www.cnblogs.com/hongdanni/p/9963296.html
Copyright © 2011-2022 走看看