排序算法
kang___xi
这个作者很懒,什么都没留下…
展开
-
八大排序算法之交换排序
上一篇博文中已经分享了八大排序算法中两种插入排序算法--直接插入排序和希尔排序。本文来继续介绍剩下的排序算法--交换排序,包括冒泡排序和快速排序。其中关于冒泡排序还会介绍其改进后的算法,而对于快速排序则会介绍递归和非递归两种形式。 说明:排序还是以从小到大为例。一、冒泡排序1.基本思想冒泡排序算法是比较常用而且特别容易理解的排序算法。每一趟冒泡过程挑选出一个最大或最小的数,N个数只需要N-1趟就可以原创 2017-08-08 10:31:36 · 422 阅读 · 0 评论 -
八大排序算法之归并排序
介绍到这里只剩下归并排序和基数排序没有介绍过了。这两种算法各有各的特点,归并排序是分治法的一种有效应用, 所谓归并是指将若干个已排好序的部分合并成一个有序的部分。而基数排序又称为桶排序,是唯一一种不需要元素之间相互比较就可以排好序的排序算法。一、归并排序1.基本思想这里介绍的归并排序是非递归版本的归并排序。基本思想如下:首先我们知道单个元素都是有序,然后我们逐渐增加元素之间的距离,最开始的时候为1原创 2017-08-12 20:23:11 · 540 阅读 · 1 评论 -
八大排序算法总结
前面的几篇博客中已经介绍了八大排序算法,在这里最后再进行总结一下,从算法思想、空间复杂度、时间复杂度和稳定性进行总结: 一、插入排序 1.直接插入排序 直接插入排序的过程可以分为三步:一是找到待排序元素应该插入的位置;二是移动后面的元素,为待排序元素插入腾出空间;最后是插入待排序元素。 改进后的直接插入排序是从后往前比较,这样就可以边移位边找待排序元素插入的位置。 2.希尔原创 2017-08-12 23:17:09 · 229 阅读 · 0 评论 -
八大排序算法之插入排序
八大排序算法之插入排序 排序分为内部排序和外部排序,内部排序时数据记录在内存中进行排序,适用于数据量比较少的情况;而外部排序因数据量太大,内存一次不能容纳所有的数据,此时需要借助文件来进行排序。 本文这里介绍的八大排序为内部排序,然后通过内部排序来实现一种外部排序。 下面先对排序进行分类如下: 在具体实现排序之前,先介绍三个衡原创 2017-08-01 11:44:22 · 308 阅读 · 0 评论 -
八大排序算法之选择排序
前面已经介绍了四种排序算法—-直接插入排序、希尔排序、冒泡排序和快速排序,今天再介绍两种排序算法:直接选择排序和堆排序。 这里还是以升序为例进行说明。 一、直接选择排序 1.基本思想 直接选择排序也是比较简单,容易理解的排序算法。对于一个有N个数的序列,每次遍历过程中找到序列中值最大或者最小的元素的下标并记录下来。并将其和最左边或者最右边的元素进行交换,这样的话就可以保证每次遍历都原创 2017-08-09 11:25:17 · 351 阅读 · 0 评论