
排序
文章平均质量分 74
两袋酸奶
一个奋斗青年~~~
展开
-
希尔排序(插入排序的改进)C++实现
算法描述:相对于直接插入排序,希尔排序将数组元素按下标的一定增量分组,对每组进行直接插入排序,随着增量的不断减小,每组包含的元素也就越多,当增量为1时,整个数组被分为一个组,进行直接插入排序之后结束。下面给出随机整数数组的希尔排序C++实现:#include #include using namespace std;const int Num=20;void exch(int*原创 2016-05-10 14:34:45 · 944 阅读 · 0 评论 -
冒泡排序C++实现
算法描述:从数组开头开始向后遍历,如果a[i]>a[i+1]则交换两个,重复做,直到没有交换的数对。下面给出整数数组的两种实现,一种是单方向的冒泡(即将大的数字向后交换),第二种是冒泡和下沉交替进行(即一次大数字向后移动,一次小数字向前移动),并比较两个实现的运行时间:第一种:#include #include using namespace std;const int Nu原创 2016-05-09 16:27:25 · 6092 阅读 · 0 评论 -
快速排序及其改进算法C++实现
算法描述:快速排序可以看成是插入排序的改进,它与插入排序的不同在与:快速排序是将控制划分过程的关键词直接放在最终的位置,而不是放在合适的位置。思想是:对于元素Ki将其放在最终的位置(即左边所有的元素都小于它,右边的元素都大于它),它将原数组分为两部分,进而递归求解左右的子数组。下面给出C++实现的整数数组的快速排序:#include #include using namespace原创 2016-05-10 16:18:00 · 2952 阅读 · 1 评论 -
归并排序 C++示例
算法思想描述:要对一个数组排序,可以将它先分为两个子数组分别排序,最后将结果合并。下面介绍两种排序:自顶向下的归并排序和自底向上的归并排序。1:自顶向下的归并排序对一个数组排序先将左子数组排序,右子数组排序,最后合并形成最后的有序的数组,要对左子数组进行排序,采用同样的方式分割数组······以整数数组为例:#include #include using namespa原创 2016-05-11 16:15:05 · 1267 阅读 · 1 评论 -
选择排序C++实现
算法描述:首先找到数组中最小的元素,将它与数组第一个元素进行交换,接着在剩下的元素中找的最小的元素与数组第二个元素进行交换,如此往复,直到整个数组都排序。下面给出整型数组的实现,其他复杂类型只需实现自定义的比较函数即可:#include #include using namespace std;const int Num=20;void exch(int* s,int a,in原创 2016-05-09 15:13:50 · 619 阅读 · 0 评论 -
插入排序C++实现
算法描述:从数组第二个元素开始向后扫描,将每个元素插到它前面所有元素的合适位置。下面给出整数数组的实现,对于其他复杂类型只需实现相应的自定义比较函数即可:#include #include using namespace std;const int Num=20;void exch(int* s,int a,int b){ int mid=s[a];原创 2016-05-09 15:47:17 · 2165 阅读 · 0 评论