- 博客(8)
- 收藏
- 关注
原创 Unix环境高级编程笔记(一)文件I/O
File I/O文章目录File I/O介绍文件描述符(File Descriptors)open 和 openat 函数介绍我们通过描述文件I / O可用的函数来开始对UNIX系统的讨论——打开文件、读取文件、编写文件,等等。在UNIX系统上,大多数文件I/O只能使用5个函数来执行:open、read、write、lseek和close。然后,我们将研究各种缓冲区大小对读写函数的影响。...
2020-03-26 15:12:17 174
原创 C++内存管理笔记 (二) new与delete表达式
文章目录new与delete表达式new expressionnew与delete表达式我们在申请内存和释放内存时,一般直接调用C++的new表达式和delete表达式即可,但只会使用,而不知其内部如何运作以及为何如此运作对于学习者来说并不明智.new expression首先,假设我们要创建一个复数对象pc,我们会这样写Complex* pc = new Complex(1,2);...
2020-03-24 14:00:06 168
原创 C++内存管理笔记(一)内存分配概括
placement newplacement new 允许我们将对象构建于已经分配好的内存中;没有所谓的placement delete,因为placement new根本没有分配内存;
2020-03-24 13:08:44 151
原创 算数类型的尺寸
16位编译器 char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: 4个字节 double: 8个字节 long: 4个字节 long long: 8个字节 unsigned long: 4个字节32位编译器 char :1个字节 char*(即指
2017-10-21 22:46:43 300
原创 归并排序(Merge Sort)
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。分治法 可以通俗的解释为:把一片领土分解,分解为若干块小部分,然后一块块地占领征服,被分解的可以是不同的政治派别或是其他什么,然后让他们彼此异化。 分治法的精髓: 分–将问题分解为规模更小的子问题; 治–将这些规模更小的子问题逐个击破;
2017-06-14 16:53:53 228
原创 插入排序(Insert Sort)
插入排序顾名思义,应该是在有序的序列中插入一个数据,并经过一系列变化,成为一个新的有序的序列。像是在玩扑克牌时,抓到的第一张牌是5,放在手里,就是一个有序的序列;抓到的第二张牌是3,则将3放在5的右面,又形成了一个有序的序列;第三张抓到4,则从手上最后一张开始比较,4比3大,则4应该在3的左边,再和5比较,4比5小,则4应该在5的右边,至此把4插入到5和3之间,形成一个新的有序的序列。时间复杂度:O
2017-05-31 16:16:48 445 1
原创 选择排序(select sort)
选择排序算法就是在待排序列中每次找到最大(最小)的关键字,并且放在已排好序的子序列的前面(后面),直到排序 结束。时间复杂度为O(n^2) 稳定性:不稳定C++实现代码:template <typename T>void SelectSort(T arr[], int n){ for (int i = 0; i < n; i++) { int current
2017-05-30 13:15:11 325
原创 冒泡排序(Bubble Sort)
最简单的排序 冒泡排序几乎是所有排序中思想最为简单的排序,很好理解。 每次比较两个数,将较大(或较小)的数升上去,这个过程就像气泡逐渐上升一样。这里将较大的数升上去为例:原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 |第一趟排序(外循环)第一次两两比较6 > 2交换(内循环)交换前状态| 6 | 2 | 4 | 1 | 5 | 9 |交换后状态| 2 | 6 | 4 | 1 |
2017-05-26 23:55:17 226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人