自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吾竹清风2017

专注于互联网技术、物联网技术、嵌入式linux、高并发技术

  • 博客(11)
  • 收藏
  • 关注

原创 图解归并算法

#include <stdio.h>#include <malloc.h>#include <stdlib.h>/* 归并排序是一种效率较高的排序方法,它分为拆分和合并两大部分,先拆后合。 step 1 : 拆分,就是将一堆无序的数拆成单个,方便合并。 step 2 :合并(merge),就是将拆分好的数按照排序规则再拼凑起来 一个元素,可以看做是有序的,是稳定的算法*/void printArray(int array[], ...

2020-10-19 10:53:21 290

原创 图解快速排序优化

1、快速排序的基本思想: 快速排序使用分治的思想,通过一趟排序将待排序列分割成两部分,其中一部分记录的关键字 均比另一部分记录的关键字小。之后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。 2、快速排序的三个步骤: (1)选择基准:在待排序列中,按照某种方式挑出一个元素,作为 "基准"(pivot) (2)分割操作:以该基准在序列中的实际位置,把序列分成两个子序列。此时,在基准左边的元素 都比该基准...

2020-10-19 10:30:46 367

原创 图解快速排序

概念

2020-10-13 17:21:27 171

原创 图解希尔排序(Shell Sort)

希尔排序的原理希尔排序算法是突破时间复杂度的第一批算法之一。思想:对直接插入排序改进后可以增加效率直接插入排序某些时候很高:(1)记录本身就是基本有序的,只需要少量插入工作,就可完成整个集的排序(2)记录比较少时如何让待排序的记录个数较少呢?希尔算法#include <stdio.h>#include <malloc.h>#include <stdlib.h>void knPrint(int array[], ..

2020-10-13 15:40:07 322

原创 冒泡排序

#include "stdio.h"#include "stdlib.h"#include "string.h"/* 难点1:相邻元素比较 难点2:冒泡的优化 判断选择法和冒泡法的方式 是关键看 是否是相邻元素比较 (选择法是从一组数据中选择最小的)*/void printfArray(int array[], int len){ int i = 0; for (i = 0; i<len; i++) { printf("%d "...

2020-10-10 17:43:34 140

原创 插入排序

概念思想:括号中的序列是一个有序序列#include <stdio.h>#include <malloc.h>#include <stdlib.h>void knPrint(int array[], int len){ for (int i = 0; i < len; i++) { printf("%d ", array[i]); } printf("\n");}void swap(int array[], in..

2020-10-10 16:18:34 120

原创 选择法排序

概念选择法思想 :在每趟中,将最小的数挑出来#include "stdio.h"#include "stdlib.h"#include "string.h"//选择法void printArray(int array[], int len){ int i = 0; for (i = 0; i<len; i++) { printf("%d\t", array[i]); } printf("\n");}void swap(int array[], int.

2020-10-10 16:06:06 135

翻译 函数调用的三种方式 __cdecl、__stdcall、__fastcall

__cdecl、__stdcall、__fastcall是C/C++里中经常见到的三种函数调用方式。__cdecl是C/C++默认的调用方式__stdcall是windows API函数的调用方式,只不过我们在头文件里查看这些API的声明的时候是用了WINAPI的宏进行代替了,而这个宏其实就是__stdcall了。函数的调用过程是通过函数栈帧的不断变化实现的:函数的调用,涉及参数传递,返回值传递,调用后返回,这都是通过栈的变化来实现的,对于三种调用约定而言:__cdecl:..

2020-10-10 11:23:46 6815

原创 图解霍夫曼树-压缩算法的基础

对于文本”BADCADFEED”的传输而言,因为重复出现的只有”ABCDEF”这6个字符,因此可以用下面的方式编码: 接收方可以根据每3个bit进行一次字符解码的方式还原文本信息。这样的编码方式需要30个bit位才能表示10个字符那么当传输一篇500个字符的情报时,需要15000个bit位在战争年代,这种编码方式对于情报的发送和接受是很低效且容易出错的。如何提高收发效率?要提高效率,必然要从编码方式的改进入手,要避免每个字符都占用相同的bit位 ...

2020-10-09 17:27:25 477

原创 宏定义#define使用#、##、__stringify

#include "stdafx.h"#include <string>using namespace std;#include <iostream>void test(){ { /* # (stringizing)字符串化操作符。 其作用是:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串。 其只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。 */ #define example(instr) printf("the.

2020-10-09 16:30:31 728

原创 图解 二叉线索树

二叉线索树 概念 普通二叉树只能找到结点的左右孩子信息,而该结点的直接前驱和直接后继只能在遍历过程中获得。 若可将遍历后对应的有关前驱和后继预存起来,则从第一个结点开始就能很快“顺藤摸瓜”而遍历整个树了。 理解:线索化核心算法的理解类似使用2个辅助指针变量交替的挖字符串代码讲解按照严老师 增加一个头结点#define _CRT_SECURE_NO_WARNINGS#include...

2020-10-09 10:04:10 602

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除