
排序
文章平均质量分 83
liangbch
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
排序算法从入门到精通之八--堆排序
本文给出堆排序算法描述和代码原创 2022-02-06 15:26:43 · 249 阅读 · 0 评论 -
排序算法从入门到精通之一公用文件
从这篇文章开始,我将陆续介绍几种排序算法,内容包括算法描述,源代码,性能测试报告等。要介绍的排序算法有冒泡排序,选择排序,插入排序,希尔排序,快速排序,归并排序,堆排序。所有的代码可包括在一个VC工程文件之中。这里写给出这些排序子程序使用的公共头文件和时间测试函数。所有代码为标准的C语言代码。我这里没有使用C++的特性。原创 2018-04-13 16:48:53 · 237 阅读 · 0 评论 -
排序算法从入门到精通之六--快速排序
快速排序的算法是一种分而治之的算法,是一个递归算法。在通常情况下,快速排序算法是已知的最快的算法,故称这个算法为快速排序。其方法是:1.首先找出一个枢轴元素base。2.扫描待排序的数组,将这个数组划分为2部分,使左部分的所有元素小于等于base,右部分的所有元素大于base。3.对左部分的子数组继续做这个操作。4.对右部分的子数组做同样的操作。5.继续递归下去,直到数组的长度小于为1。原创 2018-04-14 10:42:07 · 479 阅读 · 0 评论 -
排序算法从入门到精通之九--性能测试
该文对几种较快的排序算法做了性能测试。测试的算法包括希尔排序,归并排序和快速排序。由于冒泡排序,插入排序,选择排序速度较慢,我们这里没有给出数据。所有几种算法在同一个程序中运行,使用同样的数据。通过修改宏MAX_LEN的值,我们对数据规模为1百万,2百万和4百万分别做的测试。 我们做了2轮测试,第一轮测试中,归并排序中调用merge_v1, 第二轮测试中归并排序调用merge_v2_asm. 下面...原创 2018-04-14 23:28:39 · 524 阅读 · 0 评论 -
排序算法从入门到精通之八--堆排序
编辑重了,不知怎么删除,请参阅排序算法从入门到精通之八--堆排序_liangbch的专栏-优快云博客 排序算法从入门到精通之九--性能测试原创 2018-04-14 22:54:02 · 282 阅读 · 0 评论 -
排序算法从入门到精通之五--希尔排序
希尔排序(Shell's Sort)是插入排序的一种,又称“缩小增量排序”。原创 2018-04-13 18:32:49 · 290 阅读 · 0 评论 -
排序算法从入门到精通之四--插入排序
插入排序和选择排序的复杂度相同,当数据基本有序或者数组的规模比较小时,这个排序算法的效果最好,故可用作其他排序的子过程,如快速排序,归并排序。原创 2018-04-13 17:52:01 · 317 阅读 · 0 评论 -
排序算法从入门到精通之三--选择排序
这个算法的复杂度和冒泡排序相同,相对于冒泡排序,这个算法减少了交换次数。算法描述:1.这个算法将待排序的数组分成左右2部分,左部分已经排好的,右部分是尚未排好的。左部分中,其最大的元素(最末的元素)总是小于等于右部分的任意一个元素。一开始,左部分为空,右部分是整个数组,随着排序的继续进行,左部分增加扩大,右部分逐渐减小,直到右部分为空为止。2. 每趟扫描过程中,检查右部分的所有元素,并找出最小的那...原创 2018-04-13 17:32:37 · 233 阅读 · 0 评论 -
排序算法从入门到精通之二---冒泡排序
冒泡排序是最朴素的排序算法。其过程就像烧水过程一样,大的水泡从壶底一步一步冒出来,直到水面以上。其基本思想是 1. 扫描整个数组,若数组长度为n,第一趟扫描过程中,下标j从0到n-2, 依次比较arr[j] 与 arr[j+1] ,若前者大于后者交换这两个元素。2. 第一趟扫描完成后,最大的那个元素已经放到数组末尾,所有最后的那个元素已经就位。所以第2次扫描时,只需考虑前n-1个元素,故下标j 从...原创 2018-04-13 17:11:11 · 225 阅读 · 0 评论