自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fzzjoy的专栏

Stay Foolish

  • 博客(23)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 排序算法 - 冒泡法和选择排序法

冒泡法:基本思想:每次将相邻的两个数比较,将小的调到前头(即为升序排列)。首先比较第一和第二两个数,小的调到前头,再将比完后的第二个数与第三个数比较,同理小的调到前头。如此比较下去。假设有6个数参与排序,则第一趟两两之间共比较5次,第一趟比完之后最大的数已经到底。然后进行第二趟比较,两两之间共比较4次,将次大数调到倒数第二个数的位置。共需比较5趟,5趟比完之后呈现升序排列。总结规律:如果有

2015-03-31 16:51:26 797

原创 数据结构学习——树的基本分类

自学数据结构已经很久了,使用的教材是《数据结构与算法分析——C语言描述》。现在回过头来再看一遍此书,重新梳理一下数据结构的相关知识。以下是摘自维基百科的一些树的基本分类:无序树:树中任意节点的子节点之间没有顺序关系,这种树称为无序树,也称为自由树;有序树:树中任意节点的子节点之间有顺序关系,这种树称为有序树;二叉树:每个节点最多含有两个子树的树称为二叉树;完全二

2015-03-29 20:21:05 4520

转载 算法时间复杂度的计算

基本的计算步骤 时间复杂度的定义     一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n))为算法的渐进时间复杂度(O是数量级的符号 ),简称时间复杂度。根据定义,可以归纳

2015-03-29 19:45:55 406

原创 malloc与new的区别

1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强

2015-03-26 11:04:18 594 1

转载 Sizeof与Strlen的区别与联系

一、sizeof    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。    它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。    由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所

2015-03-25 18:33:50 345

转载 C结构体中数据的内存对齐问题

1.先看下面的例子:struct A{   char c1;   int i;   short s;   int j;}a;struct B{   int i;   int j;     short s;   char c1;}b;结构A没有遵守字节对齐原则(为了区分,我将它叫做对齐声明原则),结构B遵守了。我们来看看在x86上会出现

2015-03-25 16:26:16 506

转载 c语言中逗号运算符和逗号表达式

C语言提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如:  3+5,6+8称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为         表达式1,表达式2逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例如,上面的逗号表达式“3+5,6+8”的值为14。又如,逗号表达式  a=3*5,

2015-03-25 15:43:54 708

原创 数据结构学习——单链表ADT(程序化)

看了一点网上的代码,结合自己对链表的理解。将对链表常用的操作集合程序化如下:#include#includetypedef struct Node{ int Val; struct Node *next;}List;List *list_add(List **p,int Val);//此处是二级指针void List_Print(List *p);List *

2015-03-22 21:41:38 1036

转载 函数参数的传递问题(一级指针和二级指针)

原以为自己对指针掌握了,却还是对这个问题不太明白。请教!  程序1:  void  myMalloc(char  *s)  //我想在函数中分配内存,再返回  {       s=(char  *)  malloc(100);  }   void  main()  {       char  *p=NULL;       myMalloc(p);    //

2015-03-22 20:29:40 859

原创 printf中%p的输出应用

最近在printf遇到一个偏冷的格式控制字符%p,其实它表示的含义可以理解成和%d %x的应用是一样的。具体来说,%p表示输出以内存中实际存储一个变量格式(十六进制、32位(视机器而定))的值。即如:#include<stdio.h>int main(){ int a=10; int *p=&a; printf("%d %p\n",...

2015-03-22 18:32:46 7917 1

转载 C语言中的无符号扩展和带符号扩展

C语言中,当不同类型的数据进行运算的时候,就会发生强制或隐式类型转换,通常是低精度的数据类型扩展到高精度的。有些时候,低精度的位数比较少,扩展到高精度的时候,就要在前面补充一些位。那么这些位是补0还是补1呢?这就涉及到无符号扩展和带符号扩展。  扩展的原则是:1.有符号的数据类型,在向高精度扩展时,总是带符号扩展2.无符号的数据类型,在向高精度扩展时,总是无符号扩展  怎么

2015-03-21 15:57:28 2244

转载 Linux——守护进程的创建

守护进程是生存期较长的一种进程。他们常常在系统自举时启动,尽在系统关闭时才终止。因为他们没有控制终端,所以说他们是在后台运行的。其编程规则如下:1. 在后台运行。为避免挂起控制终端将Daemon放入后台执行。方法是在进程中调用fork使父进程终止,让Daemon在子进程中后台执行。if(pid=fork())exit(0); //是父进程,结束父进程,子进程

2015-03-14 14:34:18 392

转载 返回局部变量的问题

函数返回局部变量,是返回局部变量的值。但指针(或地址)是一种特殊的值,所以返回局部指针变量需要特别注意。正确情况下,作为函数返回值的局部指针,其所指向对象的作用域应该是调用者作用域、全局或静态常量区;指向栈空间对象的指针作为返回值,存在潜在的错误。1.       返回局部值变量[cpp] view plaincopyint num(void)  {          

2015-03-14 10:42:57 480

转载 字符串匹配的KMP算法

最近学习KMP算法时,在网上看到一篇很好的博文,解析的很清楚,在此分享一下。 字符串匹配是计算机的基本任务之一。  举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?  许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明

2015-03-13 17:28:09 410

转载 byte , bit , kB ,B MB KB GB TB之间的关系

1 byte (B) = 8 bits (b) 字节=8个二进制位 1 Kilobyte(K/KB)=2^10 bytes=1,024 bytes 千字节 1 Megabyte(M/MB)=2^20 bytes=1,048,576 bytes 兆字节 1 Gigabyte(G/GB)=2^30 bytes=1,073,741,824 bytes 千兆字节 1 Terabyte(T/TB)=

2015-03-13 16:06:25 6830

转载 Linux-hexdump命令详解

hexdump:查看一些二进制文件的内容,比如二进制文件中包含的某些字符串。可以将二进制文件转换为ASCII、10进制、16进制或8进制进行查看。-b 每一字节以八进制显示,一行共16个字节,一行开始以十六进制显示偏移值;        0000000 177 105 114 106 002 001 001 000 000 000 000 000 000 000 000 000-c

2015-03-12 16:40:13 4636

转载 Linux-dd命令详解

dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option] 如果你想要在线看 manual, 可以试试: dd --help 或

2015-03-12 16:20:41 386

转载 argc 和 argv[]

int main(int argc,char *argv[])这样的main()函数常用在linux和nuix当中,是为了配合命令行和参数运行。int argc:命令行参数个数,通常为1,就是文件路径和文件名。char *argv[]:字符串数组,argv[0]存放程序路径和文件名,argv[1]存放参数,后面也都是参数,因为参数可能为多个字符,所以argv[]为字符指针数组。

2015-03-06 15:00:44 550

原创 Phone List

Problem DescriptionGiven a list of phone numbers, determine if it is consistent in the sense that no number is the prefix of another. Let’s say the phone catalogue listed these numbers:1. Emerge

2015-03-06 13:03:19 540

转载 线程的分离状态

在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。        线程的分离状态决定一个线程以什么样的方式来终止自己。在默认情况下线程是非分离状态的,这种情况

2015-03-05 17:56:27 415

转载 void (*p)() 、 void *p()和void *(*p)(void)的区别

void (*p)()是一个指向函数的指针,表示是一个指向函数入口的指地变量,该函数的返回类型是void类型。它的用法可参看下例:例如:有一返加void值的函数swap,(swap用来交换两个数)void (*p)(); /*定义指向函数的指针变量p*/p=swap; /*使指针变量p指向函数max*/(*p)(a,b); /*通过指针变量p调用函数max*/它等价于:

2015-03-04 22:05:42 9726 1

原创 hihocoder#1014 : Trie树

时间限制:10000ms单点时限:1000ms内存限制:256MB描述小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能对于每一个我给出的字符串,都在这个词典里面找到以这个字符串开头的所有单词呢?

2015-03-04 21:11:51 600

转载 struct和typedef struct的区别

在C中定义一个结构体类型要用typedef:    typedef struct Student    {    int a;    }Stu;    于是在声明变量的时候就可以:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明)    这里的Stu实际上就是struct Student的别名。Stu==struct

2015-03-04 19:44:28 380

qt-solutions.rar

qt扩展库源码:属性树等

2021-09-01

如何制作DLL接口及使用

具体教程详见:http://blog.csdn.net/u010275850/article/details/53742683

2016-12-19

基于STM32高精度频率计的设计

这是我自己采用STM32的定时器外部计数模式,考虑到了计数溢出中断。开设1s的时钟窗口。数据均通过MATLAB二次拟合处理过,以纠正误差。理论上可以测到1hz-无穷的频率范围(但在本实验中只是测到了1Mhz.对1Mhz以上数据并没进行数据拟合,故认为不在指标内),分辨率为1Hz(因为是开了1s的时间窗口,时间窗口越大,分辨率越高)高精度频率计。避免了输入捕获受输入时钟的大小限制。自己设计的方案。当然数据拟合部分还能分段拟合,精度就更高了。

2014-08-10

18B20串口显示

测试通过,能用。又不懂的可以给我留言,提供技术支持。

2014-05-29

NRF24L01双向通信

基于单片机的NRF24L01通信程序。测试通过,保证能用。

2014-05-29

uCGUI最新固件库

最新的固件库哦,亲测能用哦。是基于KEIL mdk开发使用,一般8、16、32位单片机开发都OK。

2014-04-20

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

TA关注的人

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