⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sstable.cpp

📁 这是一个实现一种排序法的实验
💻 CPP
字号:
#include<iostream>
using namespace std;

//关键字类型 
typedef char KeyType;

//数据元素类型 
typedef struct
{
  KeyType key;
}ElemType;

//两个关键字比较的宏定义 
#define EQ(a,b) ((a)==(b))
#define LT(a,b) ((a)<(b))

//静态查找表的顺序存储结构 
typedef struct
{
  ElemType *elem;
  int     length;
}SSTable;

//顺序查找
int Search_Seq(SSTable ST,KeyType key)
{
  int i;
  ST.elem[0].key=key;
  for(i=ST.length;!EQ(ST.elem[i].key,key);--i);
  return i;
}

//折半查找 
int Search_Bin(SSTable ST,KeyType key)
{
  int low=1,high=ST.length;
  int mid;
  while(low<=high)
  {
    mid=(low+high)/2;
    if(EQ(key,ST.elem[mid].key))
      return mid;
    else
      if(LT(key,ST.elem[mid].key))
        high=mid-1;
      else
        low=mid+1;
  }
  return 0;
}

int main()
{
  KeyType k[11]="abcdefghij";
  SSTable sst;
  
  //初始化静态查找表 
  sst.elem=(ElemType*)malloc(sizeof(ElemType)*11);
  for(int i=1;i<11;i++)
    sst.elem[i].key=k[i-1];
  sst.length=10;
  
  //调用顺序查找 
  int pos=Search_Seq(sst,'k');
  cout<<"元素在表中的位置是:"<<pos;
  cout<<endl<<endl;
  
  //调用折半查找
  pos=Search_Seq(sst,'k');
  cout<<"元素在表中的位置是:"<<pos;
  cout<<endl<<endl;

  system("pause");
  return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -