共 7 篇文章
显示摘要每页显示  条
区别就是把增量1换成gap 5 int i, j; 6 T temp; 7 while (gap >0) 8 { 9 for (i = gap; i <n; i++)10 {11 temp = arr[i];12 for (j = i - gap; j >= 0; j -= gap)13 {14 if (temp < arr[j])15 arr[j + gap] = arr[j];16 else17 break;18 }19 arr[j + gap] = temp;20 }21 gap = gap * 0.382 + 0.5;22 }23 }1 template <ty...
此时哨兵i和哨兵j相遇了,哨兵i和哨兵j都走到3面前。回顾一下刚才的过程,其实哨兵j的使命就是要找小于基准数的数,而哨兵i的使命就是要找大于基准数的数,直到i和j碰头为止。此时我们已经将原来的序列,以6为分界点拆分成了两个序列,左边的序列是“3 1 2 5 4”,右边的序列是“9 7 10 8”。每次排序的时候设置一个基准点,将小于等于基...
二叉树相关算法总结一、二叉树的遍历-前序、中序、后序以及层次遍历(递归与非递归)用后序遍历的方式遍历二叉树的每一个节点,在遍历到一个节点之前我们就已经遍历了它的左右子树。if(pRoot->m_pLeft!有如下算法,按层次(从上到下,从左到右)遍历二叉树,当遇到一个节点的左子树为空时,则该节点右子树必须为空,且后面遍历的节点左右子...
临时变量指的是非引用返回的函数返回值、表达式等,例如函数int func()的返回值,表达式a+b;将亡值可以理解为通过“盗取”其他变量内存空间的方式获取到的值。# 左值引用绑定到右值,编译失败int b = 2; # 非常量左值const int &c = b; # 常量左值引用绑定到非常量左值,编译通过const int d = 2; # 常量左值const int &e = c; # 常量...
第一步:首先找到插入位置,节点 s 将插入到节点 p 之前 第二步:将节点 s 的前驱指向节点 p 的前驱,即 s->prior = p->prior; 第三步:将节点 p 的前驱的后继指向节点 s 即 p->prior->next = s; 第四步:将节点 s 的后继指向节点 p 即 s->next = p; 第五步:将节点 p 的前驱指向节点 s 即 p->prior = s;
使用注意事项①我们可以使用valatile,pointer(*),reference(&),rvalue reference(&&) 来修饰auto[cpp] view plain copy print?auto k = 5; auto* pK = new auto(k); auto** ppK = new auto(&k); const auto n = 6; ②用auto声明的变量必须初始化[cpp] view plain copy print?auto m; // m should be intialized ...
史上最明白的 NULL、0、nullptr 区别分析(老师讲N篇都没讲明白的东东),今天终于明白了,如果和我一样以前不明白的可以好好的看看...C的NULL.void bar(sometype1 a, sometype2 *b);bar(a, NULL);当bar的重载函数在后面加上来了之后,我们会发现出错了,但是出错的时候,我们找到b.cpp中的调用代码也很快可能忽略过去了,因为我们用的是NULL空...
帮助 | 留言交流 | 联系我们 | 服务条款 | 下载网文摘手 | 下载手机客户端
北京六智信息技术股份有限公司 Copyright© 2005-2024 360doc.com , All Rights Reserved
京ICP证090625号 京ICP备05038915号 京网文[2016]6433-853号 京公网安备11010502030377号
返回
顶部