摘要:
一,单链表插入操作[cpp]view plaincopytypedefstructNODE{structNODE*link;intvalue;}Node;#include#include#defineFALSE0#defineTRUE1ints_insert(Node**rootp,intnew_v... 阅读全文
摘要:
linux内核————队列linux内核——队列定义:[cpp]view plaincopystruct__kfifo{unsignedintin;//入队偏移,写索引unsignedintout;//出队偏移,读索引unsignedintmask;unsignedintesize;void*dat... 阅读全文
摘要:
一,各种排序算法比较各种排序算法比较二,相关概念1、稳定排序和非稳定排序简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,我们就说这种排序方法是稳定的。反之,就是非稳定的。比如:一组数排序前是a1,a2,a3,a4,a5,其中a2=a4,经过某种排序后为a1,a2,a4,... 阅读全文
摘要:
一,计数排序计数排序[cpp]view plaincopy#includevoidCOUNTINGSORT(int*A,int*B,intarray_size,intk){intC[k+1],i,value,pos;for(i=0;i=0;i--){value=A[i];pos=C[value];B... 阅读全文
摘要:
数据结构---如何节省空间1,稀疏矩阵稀疏矩阵定义:对于那些零元素数目远远多于非零元素数目,并且非零元素的分布没有规律的矩阵称为稀疏矩阵(sparse)。如果矩阵中每一个点都用数组方式表示,那么会浪费很大的空间,因为大部分矩阵中的点的值都为0,因此可以采用一个一维数组表示n列,然后每一列采用一个链表... 阅读全文
摘要:
1,分治思想计算输入向量中任何连续子向量中的最大和。[31,-41,59,26,-53,58,97,-93,-23,84]直接算法:[cpp]view plaincopymaxsofar=0fori=[0,n)sum=0forj=[i,n)sum+=x[j]maxsofar=max(maxsofar... 阅读全文
摘要:
linux内核使用bitmap相关1,声明一个bitmap数组,可以表示100个bit,数组名字是bitmap[cpp]view plaincopyDECLARE_BITMAP(bitmap,100)相关宏定义如下:[cpp]view plaincopy#defineDECLARE_BITMAP(n... 阅读全文
摘要:
1,二分查找:点击打开链接[cpp]view plaincopyintFind(intarr[],intkey,intlength){assert(arr!=NULL&&length>0);intlow=0,high=length,mid;while(lowkey)high=mid-1;elselo... 阅读全文
摘要:
1,堆排序概念点击打开链接点击打开链接堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法一般都用数组来表示堆,i结点的父结点下标就为(i – 1) / 2。它的左右子结点下标分别为2 * i + 1和2 * i + 2。如第0个结点左右子结点下标分别为1和2堆的插入与... 阅读全文
摘要:
1,冒泡排序[cpp]view plaincopyvoidbubblesort(intr[],intn){/*elementsarestoredinr[1]tor[n]*/inti,j,flag;inttemp;flag=1;i=1;while((ii;j--)/*内循环控制一趟排序的进行*/if(... 阅读全文