zoukankan      html  css  js  c++  java
  • 冒泡排序、选择排序和插入排序

    一、冒泡排序

    依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,直至最终完成排序。

     

    冒泡排序是稳定的。算法时间复杂度是O(n ^2)。



    
    
    
    

    二、    选择排序

    每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。

     

    选择排序是不稳定的。算法复杂度是O(n ^2 )。



    三、    插入排序

     

    每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。

     

    直接插入排序是稳定的。算法时间复杂度是O(n ^2)


    1) 稳定的:如果存在多个具有相同排序码的记录,经过排序后,这些记录的相对次序仍然保持不变,则这种排序算法称为稳定的。
        插入排序、冒泡排序、归并排序、分配排序(桶式、基数)都是稳定的排序算法。
     2)不稳定的:否则称为不稳定的。
        直接选择排序、堆排序、shell排序、快速排序都是不稳定的排序算法。

    转载出处:http://www.cnblogs.com/linzheng/archive/2010/09/15/1827400.html


  • 相关阅读:
    解决:信息中插入avi格式的视频时,提示“unsupported video format”
    java字节数组和16进制之间的转换
    16进制转换字节数组工具类
    如何在ubuntu 12.04 中安装经典的 GNOME桌面
    Ubuntu安装软件提示”需要安装不能信任的软件包”解决办法
    Ubuntu系统下运行Eclipse出现找不到jre的问题的解决方法
    ubuntu添加共享出错
    从scrapy使用经历说开来
    有趣的问题--12 coins problem
    一个奇怪的MySQL错误返回
  • 原文地址:https://www.cnblogs.com/xiepeixing/p/2583965.html
Copyright © 2011-2022 走看看