C++
baifanyanda
这个作者很懒,什么都没留下…
展开
-
经典排序算法(一)冒泡法排序----C++实现
冒泡法排序是一种比较简单的排序算法,算法复杂度为o(n2)o(n^{2})(PS:最好最坏的情况下都是这样) 具体实现步骤为: 1、指定最末元素为初始比较值,与向上相邻的元素比较大小; 2、如果小于相邻元素,则交换顺序,相反,顺序不变; 3、以步骤2中向上相邻元素在与相邻元素对比,然后重复步骤2; 4、重复步骤2、3,直到最顶端位置,如下图所示: 5、原创 2015-11-25 13:08:17 · 826 阅读 · 0 评论 -
经典排序算法(二)插入排序--C++实现
插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。下图是在百度百科中摘出的流程图。 通俗的说插入排序就是,首先选取一个位置,将待排序元素插入此位置,并与位置之前的元素比较大小,进行排序,一个萝卜一个坑的走下去,知道最后一个坑结束。 C++实现:#include <iostream>原创 2015-11-25 13:16:10 · 512 阅读 · 0 评论 -
经典排序算法(三)选择排序--C++
选择排序:每一次将从待排序的数据元素中筛选出最小(或最大)的一个元素,存放在起始位置,直到全部待排序的数据元素排完。其最小时间代价为o(n2)o(n^{2}),虽然它相对于冒泡排序法速度提升,但是本身稳定性较差,例如数组中[5,5,3]从小到排序,第一个5会排在第二个5后面。 //选择排序法#include <iostream>using namespace std;const int N原创 2015-11-25 20:45:39 · 453 阅读 · 0 评论 -
经典排序算法(四)希尔排序---C++
希尔排序是直接插入排序的升级版,实质上是一种分组的插入排序,根据增量进行分组然后进行插入排序,克服插入排序的效率低的劣势,但是它依然是不稳定的排序方式,希尔算法在最优和最坏情况下时间复杂度相差不多。 下面根据一个例子进行解释: 假设数据集合为data=[3,2,5,7,1,8,4,6]data=[3, 2, 5, 7, 1, 8, 4, 6] 增量选取为4,2,1 当增量为4原创 2015-11-28 16:37:59 · 545 阅读 · 0 评论 -
“error C2664: “MessageBoxW”: 不能将参数 2 从“char [300]”转换为“LPCWSTR” 1> 与指向的类型无关;转换要求 reinterpret_”问题解决
为什么出现这个问题呢,因为我读到一个opencv的程序,其中调用MessageBox,下面为MessageBox的定义:MessageBox( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType )其中,第2、3个参数定义为LPCTSTR,在程序中定义第二个参数为显示结果,如下图中的9原创 2016-01-12 10:03:42 · 5715 阅读 · 0 评论