1冒泡排序:

已知一组无需数据a[1],a[2],a[3],a[4],a[5][a[n],将其按升序排列,首先找出这组数据中最大值,将a[1]与a[2]比较,若a[1]大,则交换两者的值,否则不变,在继续将a[1]与a[3]比较,。。。。最后找出最大值a[n];在用同样的方法找出次大值,依次类推,a[n]就以升序排列;

优点:稳定,比较次数已知;缺点:慢,每次只移动两个数据,移动数据的次数多;

二选择排序:

已知一组无需数据a[1],a[2],a[3],a[4],a[5][a[n],将其按升序排列,首先比较a[1]与a[2]的值,若a[1]大于a[2],则交换两者的值,否则不变,在比较a[1]与a[3]的值,若a[1]大于a[3]则交换两者的值,否则不变,依次类推,得到a[1]肯定是最小的在依次找出次小值,;

优点:稳定,比较次数与冒泡一样,数据移动次数比冒泡少;缺点:相对之下还是慢

三插入排序:

已知一组升序排列数据a[1],a[2]...a[n],一组无序排列数据b[1],b[2],b[3]....b[n],需将二者合并成一个升序数列;首先比较b[1]与a[1]的值,若b1大于a[1],则跳过,比较b[1]与a[2]的值,若b[1]仍然大于a2,则继续跳过,直到b1小于a数组中的某一个数据ax,则将ax-an分别向后移动一位,将b[1]插入ax位置,b2到bm用同样方法插入(若无数组a,可将b1当做n=1的数组a);

优点:稳定,快;缺点:比较次数不一定,比较次数越多,插入点给后的数据移动的越多,特别是数据量庞大的时候,不过链表可以解决这个问题;

四希尔排序(缩小增量排序)

已知一组无序数据a1,a2,a3,a4.。。an;需将其安升序排列,发现当n不大时,插入排序的效果很好,首先取一增量d(d<n),将a1,a(1+d),a(1+2d)。。。列为一组,a2,a(2+d),a(2+2d)。。。列为一组ad,a2d,a3d。。。列为一组,依次类推,在各组内分别用插入排序,然后取d‘小于d,重复上述操作,知道d=1;

优点:快,数据移动少;缺点:不稳定,d的取值多少,应取多少个值,都无法确切知道,只能凭经验;

五快速排序

是冒泡排序的改进版,是目前已知最快的排序算法,已知一组无需数据a[1],a[2],a[3],a[4],a[5][a[n],将其按升序排列,首先任取数据ax作为基准,比较ax与其他数据并排序,使ax排在数据的第k位,并且使a1-a(k-1)中每一个数据都小于ax,a(k+1)-an中的每一个数据都大于ax,然后采用分治的策略分别对a1-a(k-1)与a(k+1)-an两组数据进行快速排序;

优点:极快,数据移动少,缺点:不稳定

几种排序算法的比较转自http://blog.csdn.net/keenweiwei/article/details/3697452的更多相关文章

  1. 排序算法 ----(转载::http://blog.csdn.net/hguisu/article/details/7776068)

    1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表.即:先将序列的第1个记录看成是一个有序 ...

  2. Golang拼接字符串的5种方法及其效率_Chrispink-CSDN博客_golang 字符串拼接效率 https://blog.csdn.net/m0_37422289/article/details/103362740

    Different ways to concatenate two strings in Golang - GeeksforGeeks https://www.geeksforgeeks.org/di ...

  3. spring加载hibernate映射文件的几种方式。转自:http://blog.csdn.net/huiwenjie168/article/details/7013618

    在Spring的applicationContext.xml中配置映射文件,通常是在<sessionFactory>这个Bean实例中进行的,若配置的映射文件较少时,可以用sessionF ...

  4. 比较C++中的4种类型转换方式(转自http://blog.csdn.net/hrbeuwhw/article/details/7884797)

    C++的四种cast操作符的区别 Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意? A:转换的含义是通 ...

  5. 4种方法让SpringMVC接收多个对象(转:http://blog.csdn.net/lutinghuan/article/details/46820023)

    问题背景: 我要在一个表单里同时一次性提交多名乘客的个人信息到SpringMVC,前端HTML和SpringMVC Controller里该如何处理? 第1种方法:表单提交,以字段数组接收: 第2种方 ...

  6. 单点登录的三种实现方式 转自: https://blog.csdn.net/python_tty/article/details/53113612

    单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任.单点登录在大型网站里使用得 ...

  7. <转载> 22种代码味道(Martin Fowler与Kent Beck) http://blog.csdn.net/lovelion/article/details/9301691

    Martin Fowler在Refactoring: Improving the Design of Existing Code(中译名:<重构——改善既有代码的设计>)一书中与Kent ...

  8. Android 利用cursor来进行排序(转至http://blog.csdn.net/yangzongquan/article/details/6547860)

    主要思路是:override move系列的方法,让cursor以自己想要的顺序来移动,从而达到对cursor排序的目的.比如数组A0里有 4(0),3(1),1(2),2(3),括号内为位置,排序后 ...

  9. UML类图几种关系的总结(转载 http://blog.csdn.net/tianhai110/article/details/6339565 )

    http://blog.csdn.net/tianhai110/article/details/6339565

随机推荐

  1. [Xcode 实际操作]六、媒体与动画-(13)使用UIImageView制作帧动画

    目录:[Swift]Xcode实际操作 本文将演示如何将导入的序列图片,转换为帧动画. 在项目导航区打开资源文件夹[Assets.xcassets] [+]->[Import]->选择图片 ...

  2. linux查找工具(find,locate,whrers)

    find whereis locate 一.whereis whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s).如果省略参数, ...

  3. GridSearchCV.grid_scores_和mean_validation_score报错

    目录 GridSearchCV.grid_scores_和mean_validation_score报错 0. 写在前面 1. 问题描述和解决过程 2. 不想比比直接看结果部分 GridSearchC ...

  4. Maven项目编译版本的问题和Spring中没有导入核心包

    idea中maven项目的编译: 方案1:maven的settings.xml中指定全局默认编译版本 <profile> <id>jdk-1.8</id> < ...

  5. 项目模板eShopOnContainers

    .NET Core多平台项目模板eShopOnContainers编译手记   之前写了一个功能性的文件上传asp.net core的小程序,加上点七七八八的东西,勉强能够应付了,打算学习一下微软的官 ...

  6. 如何减小SQL 的物理读,。

    1.dev time:1226 1个跑批 db_file_multiblock_read_count =128 60.05 (mins) 26-Dec-17 16:00:20 ~ 26-Dec-17 ...

  7. openstack安装newton版本dashboard+cinder(六)

    一.dashboard 1.安装dashboard及配置 [root@linux-node1 ~]# yum install openstack-dashboard -y #可以装任何地方只要能连接 ...

  8. nginx错误Upstream timed out

    Upstream timed out (110: Connection timed out) while reading response header from upstream 这种情况主要在下面 ...

  9. vue2.0:(五)、路由vue-router

    好的,接下来,我们来写路由.用的是vue2.0的路由. 步骤一:配置main.js import Vue from 'vue'; import App from './App'; import rou ...

  10. Seven Deadly Sins: Gluttony, Greed, Sloth, Wrath, Pride, Lust, and Envy.

    Seven Deadly Sins: Gluttony, Greed, Sloth, Wrath, Pride, Lust, and Envy.七宗罪:暴食.贪婪.懒惰.暴怒.傲慢.色欲.妒忌.