排序算法算是比较基本的算法,同时也是最重要的算法,涉及到的知识也比较多,下面记录一下各种排序算法的实现,包括插入排序,选择排序,快速排序,归并排序,冒泡排序等常见的排序算法:...
分类:
其他好文 时间:
2014-09-29 15:37:51
阅读次数:
130
快速排序算法是冒泡排序的一种改进,先找到一个元素,设置2各游标,i从前到后遍历,j从后向前遍历,如果第j个小于此元素,则调换,然后i++,如果遇到第i个大于此元素,则调换。其实这就是一个挖坑-填坑的过程。具体的代码如下:int base_quicksort(int A[], int first, i...
分类:
其他好文 时间:
2014-09-28 19:44:45
阅读次数:
211
1.归并排序的思想
2.归并排序的具体实现
3.归并排序的改进:
(1)当递归到一定程度,数组已经足够小时(length
(2)当较小的那部分数值的最大值>=较大部分的最小值时,则直接返回,不对这两部分数组进行合并。
4.归并排序的变形—buttom up merge sort
基本思路:
(1)设length=2。依次遍历数组...
分类:
其他好文 时间:
2014-09-23 16:32:54
阅读次数:
149
快速排序算法与归并排序很像,都是分治的思想。不同点在于归并排序算法是通过位置下区分两个区间,而快速排序算法是用值来区分两个区间。所以归并排序算法还需要合并的操作,而快速排序则不需要。快速排序算法最核心的地方在于:在区间中选择一个值pivot,让大于pivot的都在它的..
分类:
其他好文 时间:
2014-09-21 02:52:20
阅读次数:
254
经典的7种排序算法 原理C++实现
排序是编程过程中经常遇到的操作,它在很大程度上影响了程序的执行效率。
7种常见的排序算法大致可以分为两类:第一类是低级排序算法,有选择排序、冒泡排序、插入排序;第二类是高级排序算法,有堆排序、排序树、归并排序、快速排序。下面就分别介绍一下这几种排序算法,并会给出c++的实现,实现代码均经过测试。
一、低级排序算法
1. 选择排序
排序过程:给定一个...
分类:
编程语言 时间:
2014-09-19 13:56:05
阅读次数:
336
1. 快速排序思想 (1)在数据集之中,选择一个元素作为"基准"(pivot)。 (2)所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。 (3)对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。2. 数字数组排序...
分类:
编程语言 时间:
2014-09-18 22:06:24
阅读次数:
202
今天大鹏哥跟大家一起学习下交换排序中的快速排序。
快速排序是对冒泡排序的一种改进。它的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到真个序列有序。
快速排序基本步骤:
Step1、定义两个变量low和high,他们的初值分别为low和high,此外还有一个变量pivotkey。
...
分类:
其他好文 时间:
2014-09-17 16:50:14
阅读次数:
175
快速排序:快速排序是对冒泡排序的一种改进。它的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
一趟快速排序的具体做法:
1、附设两个指针low和high,它们的初值分别为low和high,设枢轴记录的关键字为pivotkey。
2、首先从high所指位置起向前搜索找到第一...
分类:
其他好文 时间:
2014-09-11 09:39:51
阅读次数:
216
在看了morewindows的白话经典算法的排序教程后,我用C++ 来...
分类:
编程语言 时间:
2014-09-09 18:20:39
阅读次数:
194