欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何搜索:关键词详解与数据元素标识" - 关键词:就是我们用来定位数据库或信息档案中特定数据项的值,比如学生的个人信息可能包括:学号、名字、性别、年纪、地址和联系方式等。其中,一些关键词能精确地确定一条记录,比如学号,因为每个学生的学号都是独一无二的;但像姓名这样,由于可能存在同名情况,就无法单独用来唯一标识一条记录,这类关键词被称为主关键词。相反,那些不能唯一确定一条记录的关键词,则被称为辅助关键词或从关键词。

最编程 2024-02-16 17:54:41
...

#include <stdio.h>
#include <stdlib.h>
#define MAX_KEY 100;

int search1(int k[],int n,int key)
{
  int i;
  k[n]=key;
  for (i=0;key!=k[i];i++)
    return i<n?i:-1;   
}   

int search2(int k[],int n,int key)
{
  int i;
  k[n]=MAX_KEY;
  for (i=0;key>k[i];i++);
  if (i<n&&k[i]==key) return i;
  return -1;  
}   

int bin_search(int k[],int n,int key)
{
  int low=0,high=n-1,mid;
  while (low<=high) {
    mid=(low+high)/2;
    if (key==k[mid])  return mid;
    if (key>k[mid]) low=mid+1;
    else high=mid-1;   
  }        
  return -1;
}   

int ins_search(int k[],int n,int key)
{
  int low=0,high=n-1,pos;
  while (low<=high)  {
    pos=(key-k[low])/(k[high]-k[low])*(high-low)+low;
    if (key==k[pos]) return pos;
    if (key>k[pos]) low=pos+1;
    else high=pos-1;       
  }        
  return -1;
}   

int main(int argc, char *argv[])
{
  int a[]={3,4,7,20,45,78,90},i;
  i= bin_search(a,7,45);
  printf("The n is %d\n",i);
 
  system("PAUSE"); 
  return 0;
}