C语言算法- 插补搜寻法

C语言算法- 插补搜寻法,第1张

概述C语言算法- 插补搜寻

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

#include <stdio.h>#include <stdlib.h>#include <time.h>#define MAX 10#define SWAP(x,y) {int t; t = x; x = y; y = t;}voID quicksort(int[],int,int);int intsrch(int[],int);int main(voID){  int number[MAX] =  {    0  };  int i,find;  srand(time(NulL));  for (i = 0; i < MAX; i++)  {    number[i] = rand() % 100;  }  quicksort(number,MAX - 1);  printf("数列:");  for (i = 0; i < MAX; i++)    printf("%d ",number[i]);  printf("\n输入寻找对象:");  scanf("%d",&find);  if ((i = intsrch(number,find)) >= 0)    printf("找到数字于索引%d ",i);  else    printf("\n找不到指定数");  printf("\n");  return 0;} int intsrch(int number[],int find){  int low,mID,upper;  low = 0;  upper = MAX - 1;  while (low <= upper)  {    mID = (upper - low) *(find - number[low]) / (number[upper] - number[low]) +      low;    if (mID < low || mID > upper)      return  - 1;    if (find < number[mID])      upper = mID - 1;    else if (find > number[mID])      low = mID + 1;    else      return mID;  }  return  - 1;} voID quicksort(int number[],int left,int right){  int i,j,k,s;  if (left < right)  {    s = number[(left + right) / 2];    i = left - 1;    j = right + 1;    while (1)    {      while (number[++i] < s)        ;      // 向右找      while (number[--j] > s)        ;      // 向左找      if (i >= j)        break;      SWAP(number[i],number[j]);    }    quicksort(number,left,i - 1); // 对左边进行递回    quicksort(number,j + 1,right); // 对右边进行递回  }}

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的C语言算法- 插补搜寻法全部内容,希望文章能够帮你解决C语言算法- 插补搜寻法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1232326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存