
C
文章平均质量分 53
凡沙-Fanrncho
独角戏台下,水树桃花尽。
展开
-
O(n^2)时间复杂度排序(冒泡、插入、选择)算法总结
冒泡排序、插入排序和选择排序的算法思想可以通过引入“已排序区”和“未排序区”概念来分解逻辑,这三种排序算法从这两个分区的求解思路可以让人更清晰的辨识它们各自的命名缘由,以及不同点。冒泡排序冒泡排序的算法求解思路是每次从未排序区中以相邻元素按照比较关系两两间可能交换位置,每次遍历下来能够找出该区间最小(求降序)或者最大(求升序)的元素,并放置到已排序区有序列入口端。比如要排序如下数值(假定为升序排序):6,5,8,1第一次冒泡遍历前,所有元素都在未排序区,已排序区目前为空,被放入已排序区的元素原创 2020-07-09 17:30:41 · 595 阅读 · 0 评论 -
C编程笔录(一)1.1:使用#include包含头文件,用尖括号和双引号括起有什么区别?
问题:使用#include包含头文件,用尖括号<>和双引号""括起有什么区别?测试:项目环境:Microsoft Visual Studio Professional 2017创建个“空项目”,通过项目“配置属性”弹窗->链接器->系统->子系统->选择"控制台(/SUBSYSTEM:CONSOLE)"设置为控制台应用程序,项目创建完成后添加一个含有main入口...原创 2018-02-08 14:34:51 · 103288 阅读 · 0 评论 -
C编程笔录(一)1.2: C编程的源文件到可执行程序文件的编译过程
C编程的源文件到可执行程序文件的编译过程可分解为四个步骤:预处理(Preprocessing)、编译(Compilation)、汇编(Assembly)、链接(Linking)。下面以示例解释这四个步骤,在Linux操作系统下以gcc命令编译main.c源文件到生成main.out可执行文件:Linux系统版本:Linux version 3.10.0-514.6.2.el7.x86_64 gcc...原创 2018-02-09 18:04:32 · 102800 阅读 · 0 评论 -
C编程笔录(一)1.3: 为什么C不支持函数重载,而C++支持?
问题: 为什么C不支持函数重载,而C++支持?因为C和C++的函数在源文件生成可执行程序文件的“编译”阶段函数签名的方式不一样。举个例子:如在.c和.cpp文件里分别定义个一模一样的函数int minus(int a, int b){return a - b;},在执行“编译”阶段函数签名后.c文件的该函数名为minus,.cpp文件的该函数名为_Z3minusii,如果.c和.cpp文件再定义一...原创 2018-02-10 14:27:05 · 102972 阅读 · 0 评论 -
C编程笔录(一)1.0: 在C编程中,函数的声明为什么都习惯的写在头文件中,然后在需要调用的地方使用#include来包含?
问题:在C编程中,函数的声明为什么都习惯的写在头文件中,然后在需要调用的地方使用#include来包含?带着这个问题,我创建了三个.c文件,分别命名a.c、b.c和c.c,并进行如下编程:a.c文件:int add(int a, int b){ return a + b;}b.c文件:#include int add(int a, int b);void原创 2018-02-07 17:15:52 · 103062 阅读 · 0 评论 -
C编程笔录(一)1.4:C++多态的理解
多态即多种形态,一般指父类中定义的属性或者方法被子类继承后,可以具有不同的数据类型或表现出不同行为。从广义上来讲,函数的重载(非继承关系,函数名相同,以返回值数据类型或参数列表的数据类型的不同实现)、重写(在继承关系里子类改写父类的虚函数实现),多态变量(父类指针指向子类对象)和泛型(如“模板类”),都是多态的一种表现形式。重载是在编译时期就确定了调度规则(静态绑定),而重写是在运行时期确...原创 2019-05-15 15:58:46 · 102557 阅读 · 0 评论