创建索引顺序表和分块查找
来源:互联网 发布:服装数据分析培训课程 编辑:程序博客网 时间:2024/05/18 02:40
转载出处:http://blog.csdn.net/qzfzz/article/details/9564025//BlockSearch.h#ifndef BLOCK_SEARCH#define BLOCK_SEARCH#include <stdio.h>#include <stdlib.h>#define ARR_SIZE 100#pragma pack(push)#pragma pack(4)typedef struct{int iStart;int iEnd;int iMax;}INode;typedef struct{int* pArr;int iSize;INode* pNode;int iNodeSize;}BlockSeq;#pragma pack(pop)#endif
//BlockSearch.c#include "BlockSearch.h"int BlockSearch( BlockSeq* pBSeq, int iTarget ){if( !pBSeq || 0 == iTarget )return -1;int i = 0;for( ; i < pBSeq->iNodeSize; i++ ){if( (pBSeq->pNode + i)->iMax > iTarget )break;}if( i >= pBSeq->iNodeSize )return -1;int j;int iMaxIndex = ( pBSeq->pNode + i )->iEnd;for( j = ( pBSeq->pNode + i )->iStart; j <= iMaxIndex; j++ ){if( *(pBSeq->pArr + j) == iTarget )return j;}return -2;}BlockSeq* CreateBlockSeq(){BlockSeq *pBSeq = (BlockSeq*)malloc( sizeof( BlockSeq ) );if( !pBSeq )return NULL;pBSeq->pArr = (int*)malloc( sizeof( int ) * ARR_SIZE );pBSeq->iSize = ARR_SIZE;pBSeq->pNode = (INode*)malloc( sizeof( INode ) * 4 );pBSeq->iNodeSize = 4;int i = 1;for( ; i <= 100; i++ ){*( pBSeq->pArr + i - 1 ) = i;}pBSeq->pNode->iStart = 0;pBSeq->pNode->iMax = 25;pBSeq->pNode->iEnd = 24;( pBSeq->pNode + 1 )->iStart = 25;( pBSeq->pNode + 1 )->iMax = 50;( pBSeq->pNode + 1 )->iEnd = 49;( pBSeq->pNode + 2 )->iStart = 50;( pBSeq->pNode + 2 )->iMax = 75;( pBSeq->pNode + 2 )->iEnd = 74;( pBSeq->pNode + 3 )->iStart = 75;( pBSeq->pNode + 3 )->iMax = 100;( pBSeq->pNode + 3 )->iEnd = 99;return pBSeq;}int main( int argc, char* argv[] ){BlockSeq *pBSeq = CreateBlockSeq();printf( "Result is: %d", BlockSearch( pBSeq, 33 ) );puts( "" );return 0;}
0 0
- 创建索引顺序表和分块查找
- 分块查找(索引顺序表查找)
- 分块查找\索引顺序查找
- 索引顺序表(分块查找)
- 索引顺序表查找算法(分块查找算法)
- 索引顺序表查找算法(分块查找)
- 【查找算法】——顺序查找、折半查找、分块查找(索引查找)
- 静态查找表:顺序查找、折半查找、分块查找
- 静态查找表:顺序查找、折半查找、分块查找
- 索引顺序表查找
- 分块索引(查找)
- 查找——索引结构和分块查找
- 索引查找(分块查找)
- 三种静态查找算法:顺序、二分/折半、索引/分块查找
- 顺序表查找、有序表查找、索引顺序表查找
- 一步一步复习数据结构和算法基础-索引顺序表查找
- 算法-查找-线性表的查找(顺序查找,二分查找,分块查找)
- 线性表的查找操作(线性表的顺序查找、二分查找、分块查找)
- 自适应中值滤波器
- Swing的设计是MVC的典范
- JIRA 饼图中文乱码问题
- 使用Storm实现实时大数据分析!
- bzoj 2806: [Ctsc2012]Cheat
- 创建索引顺序表和分块查找
- 信息论
- 用递归实现Fibonacci数列
- C++输入输出流的基本函数及语法
- 做Swing桌面程序,该怎样将组件与业务逻辑分离?
- Build.VERSION_CODES类
- 24. Dubbo原理解析-编码解码之编码解码流程
- HDU 4810 Wall Painting(异或 +按位容斥)
- 安卓控件——WebView