摘要:
确定一个数是否存在于递增型矩阵中: bool FindInMatrixFromTopRightCorner(int(*Matrix)[5], int Row, int Find) { int i = 0, j = 4, tmp = Matrix[0][4]; while (i <= 4) { if 阅读全文
摘要:
带环的单链表: 如上图,List 为一个带有环的单链表,环的大小为5; 证明: S 为 slow 指针相遇前走的距离,2S 为 fast 指针相遇前走过的距离; ∵ 2S = S + n*R; //n slow,fast指针相遇前 fast 多经历的圈数 S = H_I + R1; ∴S = n*R 阅读全文
摘要:
HashTable-散列表/哈希表,是根据关键字(key)而直接访问在内存存储位置的数据结构。 它通过一个关键值的函数将所需的数据映射到表中的位置来访问数据,这个映射函数叫做散列函数,存放记录的数组叫做散列表。 构造哈希表的几种方法1. 直接定址法--取关键字的某个线性函数为散列地址,Hash(Ke 阅读全文
摘要:
/*三者中的中间数*/#define Max(a,b) (a>b?a:b) #define Min(a,b) (a> 1; }/*两者中的较小数*/ int MinOfTwo(int a, int b) { cout > 1; } 阅读全文
摘要:
1.利用位操作求两个整数的平均数 2.利用位操作来求两个整数之和 3.交换两个数 4.一个数是不是 2 的幂 阅读全文
摘要:
1.计数排序 2.基数排序 阅读全文
摘要:
定义:合并排序就是通过将两个有序的序列合并为一个大的有序的序列的方式来实现排序。 合并排序是一种典型的分治算法:首先将序列分为两部分,然后对每一部分进行循环递归的排序,然后逐个将结果进行合并。 合并排序最大的优点是它的时间复杂度为O(nlgn)。他还是一种稳定性排序,也就是相等的元素在序列中的相对位 阅读全文
摘要:
1.冒泡排序(时间复杂度为 O(N2)) 原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, 这样一趟过去后,最大或最小的数字被交换到了最后一位;重复此动作直到排好序为止; 先来cv一个动图看看效果: 这里奉上一篇关于冒泡排序的博文(超赞): http://blog.csdn.n 阅读全文
摘要:
#pragma once #include"List.h" //1.逆序打印单链表 template<class T> void List<T>::PrintTailToHead(Node * pHead) { if (pHead == NULL) return; PrintTailToHead(p 阅读全文
摘要:
我们在C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: 例一: int printf( const char* format, ...);它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的(用三个点“…”做参数占位符),实际调用时可以有以下的 阅读全文