自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员白菜

一个小小的程序员

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

原创 【算法导论】之快速排序深度分析

前言最近学习了算法导论上的快速排序部分,有不少体会。今天就来分享一下。在此欢迎大家批评指正文中的错误。目录索引前言快速排序正文1.快速排序的优点2.快排的原理及实现3.快排的性能分析快排的几种优化方式1.主元的随机化选取2.三数取中3.减小递归的栈深度——小区间优化4.其他优化方法快速排序正文1.快速排序的优点说起快速排序,它的名字就显现出快排最大的优点————快。到底有多快呢?咱们用数据说话:综合一般情况来说,快排确实有(亿点快)。特别是对较大数据量的排序。快速排序的综合时间复杂度是O

2021-06-29 16:53:41 1438

原创 用<math.h>遇到 Redefinition of ‘y1‘ as different kind of symbol的问题

大家好,我是程序员白菜。前言今天在用C语言写题目时发现了一个奇怪的问题。费尽周折,解决问题之后。遂与大家分享,希望大家遇到之后可以快速解决。问题如下在vscode上面编译一下代码发现了问题。提示:Redefinition of ‘y1’ as different kind of symbol重定义了y1。原因解释:此次定义的y1变量与C语言函数库<math.h>中定义的y1重名了,所以编译错误,重定义了y1变量。解决方法:将y1变量改个名字即可。如果你想深入了解:请参照r

2021-05-06 13:37:08 2995 2

原创 我发现了leetcode的小“bug“ ???

今天,在用C语言刷LeetCode时,天真的我发现了leetcode的一个小 ”bug“。但事实证明:我错了!题目:二叉树的前序遍历图片:我用C语言的解答如下:/** * Note: The returned array must be malloced, assume caller calls free(). */ //二叉树节点的个数int TreeSize(struct TreeNode* root){ return root==NULL?0:TreeSize(roo

2021-05-04 11:11:48 1113 2

原创 深入理解C指针(1)——空指针的正确使用,指针的加减运算,指针的相关规定

许多面试官常说:C程序员新手和老手的一大差别就在于是否对指针有深刻理解,能否高效利用指针。笔者在此建立《深入理解C指针系列》专栏与大家分享我的C指针学习。C语言编程的精髓就是对指针的精巧使用,利用指针变量可以表示各种类型的数据结构,并能想汇编语言一样处理内存地址,可以编出精炼而高效的程序。指针极大的丰富了C语言的功能。指针变量的大小指针变量的值就是某个内存单元的地址。指针的大小在32位机器上是4个字节,在64位机器上是8个字节。指针的类型指针的类型有int,char,float,doub

2021-03-13 15:36:47 1275 2

原创 C面试题:统计字符个数,并按先后顺序输出

统计字符个数题目:假设输入一行字符串。统计其中小写字母出现的次数,并按照出现次数的多少依次输出。当出现相同次数的字母时,按照字母的先后顺序依次输出例如:“I love programming@C with class and java”输出:分析:题目要求统计小写字母,则可使用 islower() 函数。(PS:需要引用头文件<ctype.h>),将小写字母录入。对于出现相同次数的字母,还要按照字符的ANSCII进行排序。我们想到可以用数组来顺序存储a~z的出现次数。定义数

2021-03-03 21:10:36 1634 3

原创 C语言中那些“不受限制”的字符串函数

“不受限制的“字符串函数按《C和指针》中所说,那些常用的字符串函数都是“不是限制的”,就是说它们只能通过寻找字符串末尾的NULL来判断字符串的长度。strlenstrlen函数用于求解字符串长度,其返回类型为unsigned int(即size_t)。strlen函数从起点开始,往后计数,遇到‘\0’停止。值得注意的是:strlen函数的返回类型。看如下代码:#include<string.h>#include<iostream>using namespace std;

2021-03-02 08:32:23 2284 5

原创 位运算及其应用实例

C语言位运算及其应用众所周知,数据在计算机内存中都是以二进制的形式存放的。在计算机发展早期,位运算是C语言特有的运算。深入理解位运算有助于C语言学习进阶。位运算是按数据在内存中存放的补码进行运算的。正数的源码,反码,补码都相同。负数的源码(除符号位)按位取反得到反码,反码+1得到补码。位运算介绍:1.按位与&:操作数如果对应的二进制位的值都为1,则该二进制位按位与的结果为1,否则为0;3&5=12.按位或 |操作数如果对应的二进制位的值都为0,则该二进制位按位或的结果为

2021-02-25 12:22:08 575

原创 利用time(NULL)函数表示此刻的时间

随机数产生函数srand()

2020-12-14 20:54:43 10630

原创 素数求解的C语言方法

问题求解:找出100到200之间的素数并输出下面,我们用C语言求解试除法*:素数的因子只有1和素数其本身。采用试除法将2到i 之间的数字作为除数,求余数。直到除数等于i 时,余数才为0,则 i 为素数。上面的代码除数从2到素数之间的每个数都试除了一次,效率不高。下面,我们将代码优化一下。考虑到素数(除2以外)都是奇数。仔细想想,任意一个整数x,其因数(除自身)都是不大于x/2的。对此,我们进一步优化。进一步优化,我们知道i=a*b,a或b至少有一个数字<=sqrt(i)

2020-12-13 21:52:54 18257 6

空空如也

空空如也

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

TA关注的人

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