zoukankan      html  css  js  c++  java
  • 算法分析与设计——各类排序算法

    主要介绍关于插入排序、冒泡排序、快速排序、二分归并排序等几种排序算法。

    1.插入排序

    2.冒泡排序

    3.快速排序

    4.二分归并排序

    首先是几大算法的效率:

    1.插入排序:

    插入排序:以下图为例,下一个预备插入的为2,首先和前一个7进行对比,7>2,所以7向后挪动,2再和6进行比较,6向后挪动...依次向前,当1与2比较时,1<2,把2排到1后面。

    一遍下来所有的都已经排好。

     

     2.冒泡排序

    冒泡排序是进行多次巡回才可以得到排好序的序列。第一次巡回,5与1比较,交换;5与6比较,不交换;6与2 比较,交换...

     多次巡回结果:(需要注意的是,下图中绿色部分是下一次巡回的范围,而这个界限是本次巡回最后一次交换的位置,尤其要注意是交换的位置(第2次巡回6与7只是比较了但没有交换))

     3.快速排序

    选定首元素作为划分标准,从前面找第一个比首元素大的,从后往前找第一个比首元素小的,然后将两者进行交换。随后再分别从交换过的两个元素的后面和前面往下寻找。当到中间两个相邻元素进行交换之后,那么首元素和左边最后交换过的那个元素进行交换(下图中是2与5交换)

     此后,相当于最开始的首元素(5)把问题划分成两个子问题(左边和右边),之后递归地进行排序就可以得到结果。

     4.二分归并算法

    把元素序列从中间划分开,利用递归排序,二分排序两边子问题,得到最终排好序的两个子问题,再依次一边拿出一个元素 ,对比之后进行归并。

    Today And Next
  • 相关阅读:
    shell脚本
    vim使用快捷键
    logback.xml_appender配置
    vim配置文件
    sed
    使用linux服务器安装wordpress博客详细教程
    JDBC为什么要使用PreparedStatement而不是Statement
    Jsp技术介绍
    jsp的appilication.getInitParameter()方法无法获取到值的问题
    ubuntu 插网线无法上网解决方案
  • 原文地址:https://www.cnblogs.com/yayyer/p/13138244.html
Copyright © 2011-2022 走看看