纯C语言:折半查找源码分享_C 语言

复制代码 代码如下:

#include <stdio.h>    
  int bin_search(int key[],int low, int high,int k)   
  {   
    int mid;   
    if(low>high)
    {
       return -1;   
    }
    else 
     {   
         mid = (low+high) / 2;   
         if(key[mid]==k)   
             return mid;   
         if(k>key[mid])   
             return bin_search(key,mid+1,high,k);        /*在序列的后半部分查找*/   
         else   
             return bin_search(key,low,mid-1,k);            /*在序列的前半部分查找*/   
      }   
 }   

 int main()   
 {   
     int n , i , addr;   
     int A[10] = {2,3,5,7,8,10,12,15,19,21};   
      printf("The contents of the Array A[10] are\n");   
      for(i=0;i<10;i++) 
         printf("%d ",A[i]);                                /*显示数组A中的内容*/   
      printf("\nPlease input a interger for search\n");   
      scanf("%d",&n);                                /*输入待查找的元素*/   
      addr = bin_search(A,0,9,n);   
      if(-1 != addr)    /*查找成功*/   
 {
         printf("%d is at the %dth unit is array A\n ",n,addr);   
 }
      else
 {
  printf("There is no %d in array A\n",n);            /*查找失败*/   
 }
  getchar();   
  return 0;   
  }   

时间: 2024-07-31 02:01:07

纯C语言:折半查找源码分享_C 语言的相关文章

纯C语言:分治快速排序源码分享_C 语言

复制代码 代码如下: #include<stdio.h>void fun(int array[],int low,int high){    int i = low;    int j = high;      int temp = array[i];              while(i < j)     {  while((array[j] >= temp) && (i < j))  {    j--;    array[i] = array[j]; 

纯C语言:递归二进制转十进制源码分享_C 语言

复制代码 代码如下: #include<stdio.h>#include<math.h>int change(int n,int *sum,int *m)//n为第n位,m总位数{    char c;    if(c!='#')    {        *m=*m+1;        change(n+1,sum,m);    }    if(c=='#')    {        return *sum=int(*sum+pow(2,*m-n));    }}void main

纯C语言:分治假币问题源码分享_C 语言

复制代码 代码如下: #include<stdio.h>int sum(int m,int n){ if(n==m||n==0)  return 1; else  return sum(m-1,n)+sum(m-1,n-1);}void main(){ int m,n; printf("请输入组合数中的m:"); scanf("%d",&m); printf("\n请输入组合数中的n:"); scanf("%d&qu

纯C语言:检索与周游广度深度遍历源码分享_C 语言

复制代码 代码如下: #include <stdio.h>typedef  int  datatype;   /*假定线性表元素的类型为整型*/#define  maxsize  1024    /*假定线性表的最大长度为1024*/# define n 100            /* 图的顶点最大个数 */typedef char VEXTYPE;  /* 顶点的数据类型 */typedef float ADJTYPE;  /* 权值类型 */typedef struct{  VEXTY

纯C语言:贪心Prim算法生成树问题源码分享_C 语言

复制代码 代码如下: #include <iostream.h>#define MAX 100#define MAXCOST 100000 int graph[MAX][MAX]; int Prim(int graph[MAX][MAX], int n){ /* lowcost[i]记录以i为终点的边的最小权值,当lowcost[i]=0时表示终点i加入生成树 */ int lowcost[MAX];  /* mst[i]记录对应lowcost[i]的起点 */ int mst[MAX];  

纯C语言:递归组合数源码分享_C 语言

复制代码 代码如下: #include<stdio.h>int sum(int m,int n){ if(n==m||n==0)  return 1; else  return sum(m-1,n)+sum(m-1,n-1);}void main(){ int m,n; printf("请输入组合数中的m:"); scanf("%d",&m); printf("\n请输入组合数中的n:"); scanf("%d&qu

纯C语言:递归最大数源码分享_C 语言

复制代码 代码如下: #include<stdio.h>int Getmax(int arr[n]){ for(int i=0;i<n,i++) {  if(n==0)   return arr[0];  else  {   arr[0]=arr[0]>Getmax(arr[]+1,n-1)?arr[0]:Getmax(arr[]+1,n-1);   return arr[0];   } }}void main(){ printf("请输入一组整数(用空格隔开):\n&q

二叉搜索树源码分享_C 语言

复制代码 代码如下: #include <iostream>using namespace std; //枚举类,前中后三种遍历方式enum ORDER_MODE{ ORDER_MODE_PREV = 0, ORDER_MODE_MID, ORDER_MODE_POST}; //树节点的结构体template <class T>struct BinaryNode{ T    element; BinaryNode  *left; BinaryNode  *right;  Binar

WinForm天猫双11自动抢红包源码分享_C#教程

本文实例为大家分享了抢红包源码,供大家参考,具体内容如下 1. 正确获取红包流程 2. 软件介绍 2.1 效果图: 2.2 功能介绍 2.2.1 账号登录 页面开始时,会载入这个网站:https://login.taobao.com/member/login.jhtml?redirect_url=http%3A%2F%2F1111.tmall.com%2F 登录成功后,会自动跳转到1111.tmall.com活动页面. 2.2.2 [去抽奖]按钮 这按钮是手动跳转到1111.tmall.com页