
C/C++
惊风无尘
研发工程师一枚,热爱编程,喜欢探讨,有问题加群522192138,一起交流,一起进步
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
史上最容易懂的makefile简单教程
1.makefile学习资料: 概述 — 跟我一起写Makefile 1.0 文档 makefile参考手册.pdf 2.小试一下: 新建tool1.h.tool1.c tool2.h tool2.c, main.c代码如下 #ifndef TOOL2_H_ #define TOOL2_H_ int mul(int a, int b); #endif #include <stdio.h> #include "tool2.h" int mul(int a, int b) {原创 2022-01-03 21:18:08 · 820 阅读 · 1 评论 -
链表翻转和链表环入口点
链表环和环入口点 0.单链表节点定义: struct Node { int _val; Node* next; Node() { next = NULL; } Node(int val):_val(val),next(NULL){} }; 1.单链表翻转 用双指针, 一个指针指向当前节点, 一个指针指向当前节点的前一个节点, 用临时变原创 2021-01-12 11:40:10 · 170 阅读 · 0 评论 -
VS2010不能正确加载 'VSTS for Database Professionals Sql Server Data-tier Application'
VS2010不能正确加载 ‘VSTS for Database Professionals Sql Server Data-tier Application’解决方法: 开始–>所有程序–>Mircosoft visual studio 2010–>visual studio tools–>visual studio 命令提示, 然后输入 devenv /resetskippkgs,即可注意:不原创 2016-04-08 23:03:46 · 801 阅读 · 0 评论 -
希尔排序
思想:把元素按步长分组,对每组元素按直接插入排序算法排序。 时间复杂度:O(nlgn),最差O(n^1.3) 稳定性:不稳定void ShellSort (int* A, int length) { if (A == NULL || length < 1) { return; } int gap = length / 2; while(gap原创 2016-03-07 07:54:10 · 321 阅读 · 0 评论 -
基数排序
#include <iostream> using namespace std;void RadixSort(int* A, int startIndex, int endIndex, int digit);int GetDigit(int data, int digit);int main () { int arr[] = {3,1,5,2,4,55,3,1,9,8,99,4,99,100原创 2016-03-06 22:28:36 · 245 阅读 · 0 评论 -
计数排序
#include <iostream> using namespace std; void CountingSort(int*A, int length, int MaxData);int main () { int arr[] = {3,1,5,2,4,55,3,1,9,8,99,4,99,8,7}; int len = sizeof(arr)/sizeof(arr[0]);原创 2016-03-06 21:26:02 · 242 阅读 · 0 评论 -
选择排序
void SelectSort(int* A, int length) { if (A == NULL || length < 1) { return; } for (int i = 0; i < length; ++i) { int minIndex = i; for (int j = i+1; j < leng原创 2016-03-06 19:54:42 · 268 阅读 · 0 评论 -
冒泡排序
#include <iostream> using namespace std; void BubbleSort(int* A, int length); void Swap(int* A, int lIndex, int rIndex); int main () { int arr[] = {3,1,5,2,4,99,8,7}; int len = sizeof(arr)/size原创 2016-03-06 19:51:43 · 310 阅读 · 0 评论 -
快速排序
快速排序算法也是基于分治策略的。首先把原数组分解成两个子数组(可能空)A[p,q-1]和A[q+1,r];其中A[p,q-1]里边的元素都小于等于A[q],A[q+1]里边的元素都大于A[q];下标q也在这个分隔中进行计算。 然后,通过递归调用快速排序,对子数组A[p,q-1]和A[q+1,r]进行排序。 最后合并两个子数组的排序结果,因为两个子数组是就地排序的,将他们的合并不需要操作,整个数组原创 2016-03-06 17:35:35 · 259 阅读 · 0 评论 -
周期串
如果一个字符串由n个长度为K的字符串重复组成,则长度为k的字符串为重复串。 如:字符串“abcabcabc"的重复串为“abc" 或”“abcabcabc"; 从上边的例子可知:重复串满足下面条件: 设:Lengthparent 为整个字符串的长度, LengthChild为重复串的长度,则 Lengthparent % LengthChild = 0;即 重复串能被父字符串长度整除原创 2016-02-19 22:41:50 · 423 阅读 · 0 评论 -
求N的阶乘
void Factorial(int n) { //假设n最大为1000, 1000的阶乘约等于4 * (10 的2567次方),可以用一个长度为3000的数组保存 const unsigned int MAX_COUNT = 3000; /* 存放阶乘结果,按数组索引递增存放阶乘结果(个、十、百、千... => f[0],f[1],f[2],f[3]...), 之所以采用逆序结果是为原创 2016-02-20 10:09:39 · 1056 阅读 · 0 评论 -
堆排序
最小堆为降序排列,最大堆为升序排列#include <iostream>using namespace std; void MinHeapify(int* A, int parentIndex, int heapSize); void Swap(int* A, int lIndex, int rIndex); void BuildMinHeap(int* A, int len); void Heap原创 2016-03-06 11:41:04 · 259 阅读 · 0 评论 -
分治法——归并排序
分治法:将原问题划分成n个规模较小而结构与原问题相似的子问题,递归的解决这些子问题,然后再合并其结果,就得到原问题的解。 步骤:分解-》解决-》合并。 归并排序算法分析: 这里我们有一个长度为8的数组,元素为{3,1,5,2,4,99,88,7}; 1、分解,把原数组划分成n个相似的子问题,划分结果如图所示: 2、解决子问题:对每个小的数组进行合并,即(原创 2016-03-06 10:33:06 · 492 阅读 · 0 评论 -
C#客户端连接C++服务器 目标机器积极拒绝
用c#客户端连接C++服务器端,客户端调用connect函数时发生异常,错误信息是目标机器积极拒绝,无法连接。在网上找了好久没有解决问题,通过不断的摸索终于找到解决方案: 1.在DOS窗口检查端口是否被打开,命令是:netstat -an 没有发现服务器端监听的端口号 2.把服务器端端口号从本机字节序转为网络字节序,用htons函数 SOCKADDR_IN saServe; sa原创 2015-12-02 22:42:57 · 1539 阅读 · 0 评论 -
二叉排序树(BST)
二叉排序树又名二叉搜索树,其任何一个结点的左子树的所有点的值小于父结点,任何一个结点的右子树的所有点的值大于父结点。之所以叫二叉排序树是因为中序遍历输出的结果是一个递增序列。 插入: 每次插入新结点,必须从根结点开始遍历,然后把新结点作为叶结点插入。查找: 从根结点开始,如果该结点的值小于所查值,在右子树中查找,否则在左子树中查找删除:前提:删除结点,二叉搜索树的性质不变,保证删除后二叉搜索树的原创 2015-12-14 21:42:15 · 644 阅读 · 1 评论