C++ 算法解析
BIG_C_GOD
这个作者很懒,什么都没留下…
展开
-
C++ 排序算法(1)---冒泡,选择,插入
今天来写点算法,就当是复习了。 冒泡,选择,插入这三个算法效率都挺一般的,但思想接近,所以放在一起写。冒泡算法运行时间稳定,时间复杂度 O(n^2),非常简单粗暴,当然效率也不高。这里不多讲。void BubbleSort(int a[], int n){ for (int i = 0; i < n; i++) for (int j = 1; j < n - i; j++原创 2016-11-29 15:23:16 · 1255 阅读 · 0 评论 -
C++ 排序算法(2)---归并
归并排序归并排序作为复杂度O(nlogn)的稳定排序方法在效率上是远超一般排序方法的。合并数组在说归并排序之前我们先考虑一个问题,如何合并两个有序数列并使其结果仍有序? 现在在一数组a中,前一半是递增的,后一半也是递增的,但a整体却不是递增的,那么现在想一个办法,把a的前半段和后半段合并成一个有序数列。 1. 首先从两段中取出最小值进行比较,将较小的一个放入临时数组。 2. 将剩余的部分放入临原创 2016-12-01 18:24:26 · 3146 阅读 · 0 评论 -
C++ 排序算法(3)---希尔排序
简介希尔排序是插入排序的优化版本,又名缩小增量排序。 基本思想是把数组按一步长(gap)分组,后对每一组进行插入排序,通过缩小步长使每一组的数据增加,当步长为1时,完成对整组数据的排序。 例如现在有一个数组: 6 3 1 9 4 8 2 5 7 0 以步长5来进行排序,将6和8,3和2,1和5。。。。进行排序, 6 2 1 7 0 8 3 5 9 4 在以步长2(5/2)来排序,将{6,原创 2016-12-09 17:48:00 · 541 阅读 · 0 评论 -
C++ 排序算法(4)---快速排序
简介快速排序是目前各个排序算法中效率优秀的一种排序方法,其采用的任然是分治法的思想,并且快速排序在实际中也是最为常用的。基本流程首先在数组中取一个值作为基准(可以随便取) 4,3,1,7,3,9,5,6,2将比基准小的都放到基准的左边,比基准大的都放到基准的右边,以此将数组分为两部分 3,1,3,2,4,7,9,5,6分别对两个区间重复以上步骤,直到各区间只有一个数 3,1,3,2,|4原创 2017-02-12 12:28:49 · 763 阅读 · 0 评论