- 博客(21)
- 收藏
- 关注
原创 基数排序
基数排序思想逻辑基数排序思想比较简单,例如有这么一个数组A[14,59,62,88,16]。 第一次,比较个位数,得到数组A1[62,14,16,88,59] 第二次,比较十位数,得到数组A2[14,16,59,62,88]。 … 具体是怎么实现的呢? 分配10个桶,桶编号为0-9,以个位数数字为桶编号依次入桶,变成下边这样 | 0 | 0 | 62 | 0 | 14 |
2017-03-21 00:02:56 366
原创 归并算法
归并算法代码#include <iostream>using namespace std;void Merger(int32_t numList[], int32_t first, int32_t mid, int32_t last) { int32_t tmpList[13]; auto indexA = first; auto indexB = mid + 1;
2017-03-16 23:29:27 580
原创 选择排序
选择排序代码#include <iostream>using namespace std;void SelectSort(int32_t numList[], int32_t len) { for (auto i = 0; i < len; i++) { auto min = i; //标记最新数的下标 for (auto j = i + 1; j < le
2017-03-14 23:18:24 337
原创 冒泡排序
冒泡排序代码#include <iostream>using namespace std;void BubbleSort(int32_t numList[], int32_t len) { for (auto i = 0; i < len - 1; i++) { //只需遍历len-1个元素 auto isChanged = false; for (auto
2017-03-14 22:55:08 320
原创 堆排序
参考文章:堆排序原理及算法实现(最大堆)堆排序代码#include <iostream>using namespace std;void HeapAdjust(int32_t numList[], int32_t len, int32_t index){ auto i = index; auto j = i * 2 + 1; //得到i的左孩子 auto tmp = num
2017-03-14 00:24:26 297
原创 希尔排序
希尔排序思想逻辑 希尔排序代码void InsertShellSort(int32_t numList[], int32_t len, int32_t dk) { for (auto i = dk; i < len; i++) { auto preIndex = i - dk; if (numList[i] < numList[preIndex]) {
2017-03-13 00:05:24 306
原创 快速排序
快速排序思想逻辑在数据集之中,选择一个元素作为”基准”(pivot)所有小于”基准”的元素,都移到”基准”的左边;所有大于”基准”的元素,都移到”基准”的右边对”基准”左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止 快速排序代码#include<iostream>using namespace std;void Quicksort(int32_t numLi
2017-03-12 22:13:43 416
原创 vector详解
vector介绍 vector是stl中序列容器的其中一种,也是实际运用时最常用到的容器之一,与C++内建的array非常相似。两者的唯一差别就是对于内存空间的分配上。array是静态空间分配方式,而vector是动态空间分配方式(动态分配在第三点会详细讲),运用比较灵活。vector维护的是一个连续线性空间.(详细请查看C++ vector)。那在实际编程中怎么运用vector才是关键。ve
2017-03-12 17:57:26 631
原创 插入排序
插入排序动态逻辑图动态图解插入排序 插入排序代码template <typename T>void InsertSort(T array[],int length) { if (array == nullptr || length < 0) return; for(auto i = 1; i < length; i++) { auto preIn
2017-03-11 17:24:03 340
原创 排序算法分析总结
算法 时间复杂度O 插入排序 O(n²) 归并排序 O(nlgn) 堆排序 O(nlgn) 快速排序 O(n²) 计数排序 O(n) 基数排序 O(n) 桶排序 O(n²)
2017-03-11 16:53:24 392
原创 MFC 动态创建
1、动态创建的目的?为了解决平时程序在执行期间,不能根据获得的一个类名去产生一个对象的问题。2、怎样去构建表?首先创建一个名为CRuntimeClass的结构体,其中包括6个成员:类名称(ClassName)、类的大小(ClassSize)、类地址(ClassAddress)、 创建对象的函数(CObject* A::CreateObject())、上一个CRuntimeClass
2015-12-10 22:37:53 537
原创 smart pointer总结
1、C++11标准库提供两大类型的smart pointer: shared_ptr实现共享式拥有概念。多个smart pointer既共享也拥有对象,这个拥有的意思表面上可以理解为计数器的个数。在这里特别强调是为了区分后面讲到的weak_ptr。当最后一个引用的指针被销毁时,这个对象也被析构(这里也可以理解为当计数器的个数为0时,对象被析构)。 unique_
2015-12-02 22:17:28 524
转载 计算机经典书籍汇总
1、《代码大全》 史蒂夫·迈克康奈尔推荐数:1684“优秀的编程实践的百科全书,《代码大全》注重个人技术,其中所有东西加起来, 就是我们本能所说的“编写整洁的代码”。这本书有50页在谈论代码布局。” —— Joel Spolsky对于新手来说,这本书中的观念有点高阶了。到你准备阅读此书时,你应该已经知道并实践过书中99%的观念。– esacSteve M
2015-12-01 15:45:54 520
原创 如何正确将BOOL转bool
void main() { //BOOL bRet = -1; //输出的是"ERROR\n" "true\n" //BOOL bRet = 0; //输出的是"FALSE\n" "false\n" //BOOL bRet = 1; //输出的是"TRUE\n" "true\n" BOOL bRet = 2; //输出的是"ERROR\n" "true\n" if (bRet ==
2015-11-19 11:13:58 887
原创 用vs2013创建一个ole对象工程
对于深入学习duilib的richedit童鞋,有一个很好的demo提供学习,网站是:http://download.csdn.net/detail/zym_123456/5099755 (谢谢作者分享) 但是对于怎样去插入一个ole对象,是很多像我一样的新手困扰的问题。下面,我演示下用vs2013如何去创建一个ole对象,并且可以提供可以被Richedit调用的方法;创建o
2015-11-17 14:54:40 2258
转载 Android xml属性大全
第一类:属性值为true或falseandroid:layout_centerHrizontal 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中android:layout_alignParentBottom 贴紧父元素的下边缘android:layout_alignP
2015-11-09 22:50:43 662
原创 C++11新特性总结
【C++11 新特性】1、long long 类型:是由long衍生而来的,最小尺寸是64位,8字节。 2、列表初始化:先讲一点,在C++语言中,初始化和赋值是两个完全不同的操作。怎么讲?初始化的含义是创建变量时赋予其一个初始化,而赋值的含义是把对象的当前值擦除,以一个新值来替代。那么,什么是列表初始化?比如:int nTemp{0}; 用花括号来初始值,无论是初始化对象还是某些时
2015-06-24 13:27:24 533
原创 RapidJson简单实例
一、RapidJson的详细介绍网站:http://miloyip.github.io/rapidjson/zh-cn/ 二、1、RapidJson的实践一:解析一个字符串。std::string sJson = “{"ack":{"type":"cloud","version":100}}”rapidjson::Document doc;doc.Parse(sJson.c_s
2015-06-24 13:22:00 4289
转载 常用的正则表达式
1.匹配IP地址const std::regex pattern("^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})$");return std::regex_match(sIP, pattern);2、匹配URLconst std::reg
2015-06-24 13:09:32 394
转载 [转载]Duilib中各个类的简单介绍
来自:http://blog.csdn.net/gaojinshan/article/details/8265206DirectUI意为直接在父窗口上绘图(Paint on parent dc directly)。即子窗口不以窗口句柄的形式创建(windowless),只是逻辑上的窗口,绘制在父窗口之上。微软的“DirectUI”技术广泛的应用于Windows XP、Vista、Windo
2015-04-22 13:36:28 536
转载 [转载] 面向对象
前言:整理这份资料的目的是为了帮助朋友们能够更直观的理解面向对象的编程。让后来者能够少走一些弯路。但其中不免有许多漏洞及错误,也还请前辈提出宝贵的更改意见,毕竟交流会让我们不断的进步。技术是日新月异的,他不会等待你的成长。技术要拿出来于别人交流,自己学是自己主观意识上的理解,有对有错!交流会让进步变得更快。我认为如果计算机的体系结构不发生革命性的变化,我们现在所应用的程序语言也就百变不离奇踪了
2015-04-10 13:46:01 349
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人