精华内容
下载资源
问答
  • c语言查找算法

    2011-10-04 08:03:15
    丰富的C语言查找算法,源代码。可直接编译,欢迎下载学习!
  • C语言查找算法

    2017-07-16 10:44:42
    1、折半查找思想:假设表中元素按照升序排列,将表中间位置元素与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置元素将表分为前后两个子表,如果中间元素大于查找关键字,则进一步查找前一子表,否则...

    1、折半查找

    思想:假设表中元素按照升序排列,将表中间位置元素与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置元素将表分为前后两个子表,如果中间元素大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表,直到找到查找关键字即为查找成功。
    优点:比较次数少,查找速度快,平均性能好;
    缺点:必须为有序表,插入删除困难;

    适用于不经常变动而查找频繁的有序列表。

    代码:

    #include <stdio.h>
    
     int bisearch(int target, int array[], int len)
     {
         int low = 0;
         int high = len - 1;
         int mid;
    
         while (low <= high)
         {
             mid = (low + high) / 2;
    
             if (array[mid] == target)
             {
                 return mid;
             }else if (array[mid] < target)
             {             
                 low = mid + 1;
             }else if (array[mid] > target)
             {
                 high = mid - 1;
             }
         }
    
         return -1;
     }
    
     int main()
     {
         int array[10] = {2, 3, 4, 6, 8, 10, 11, 32};
         int location = bisearch(8, array, 8);
    
         if (location > -1)
         {
             printf("the location is %d\n", location);
         }
         else
         {
             printf("can't find the target\n");
         }
    
         return 0;
     }
    
    
    展开全文
  • C语言查找算法之顺序查找、二分查找(折半查找),最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些。 顺序查找 /*顺序查找 顺序查找是在一个已知无(或有序)序队列中找出与给定关键字相同的...

      C语言查找算法之顺序查找、二分查找(折半查找),最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些。

    1. 顺序查找
      /*顺序查找 
      顺序查找是在一个已知无(或有序)序队列中找出与给定关键字相同的数的具体位置。
      原理是让关键字与队列中的数从最后一个开始(或第一个)逐个比较,直到找出与给定关键字相同的数为止
      它的缺点是效率低下
      */ #include<stdio.h> void main(){ int i ,num,arr[10]={3,6,9,10,65,23,76,45,2,11}; int size = sizeof(arr)/sizeof(int); printf("请输入要查询的值:"); scanf("%d",&num); for(i=0;i<size;i++){ if(num==arr[i]){ break; } } if(i!=size) printf("要查询的值%d在第%d个位置",num,i+1); else printf("未找到值%d",num); getch(); }

       

    2. 二分查找
      /*二分查找 
      二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。
      但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
      */
      #include<stdio.h>
      void main(){
          int mid,low,high,num,arr[10]={3,6,9,10,23,65,76,87,88,213};
          int size = sizeof(arr)/sizeof(int);
          printf("请输入要查询的值:"); 
          scanf("%d",&num);
          low = 0;
          high = size;//初始low和high的值
          while(low<=high){
              mid = (low+high)/2;//取中值 
              if(arr[mid]==num) break;//找到,结束循环此时low<=high 
              else if(arr[mid] < num) low = mid+1;//如果目标值比当前中间值大,说明目标值在中间值的后面low移动到mid+1 
              else high = mid - 1;
          }
          if(low <= high)//找到,输出 
              printf("要查询的值%d在第%d个位置",num,mid+1);
          else //未找到 
              printf("未找到值%d",num);
          
          getch();
      } 

       

    转载于:https://www.cnblogs.com/hyyq/p/8296387.html

    展开全文
  • C语言查找算法

    2020-09-21 19:35:30
    #include <iostream> using namespace std; template <class Type> int bisearch(Type a[],const Type& x,int low,int high); int main() { string x[10],y;... printf("input %d s...

    #include <iostream>
    using namespace std;

    template <class Type>
    int bisearch(Type a[],const Type& x,int low,int high);

    int main()
    {
        string x[10],y;
        int n,i;
        cout<<"Input the num:";
        cin>>n;
        printf("input %d sorted elements:",n);
        for(i=0;i<n;i++) cin>>x[i];
        cout<<"Input the element to search:";
        cin>>y;
        cout<<bisearch(x,y,0,n-1)<<endl;
        return 0;
    }

    template <class Type>
    int bisearch(Type a[],const Type& x,int low,int high){
        if(low>high) return -1;
        int mid=(low+high)/2;
        if(x==a[mid]) return mid;
        else  if(x>a[mid])return bisearch(a,x,mid+1,high);
        else return bisearch(a,x,low,mid-1);
    }

    展开全文
  • 并且他们的双亲结点中应同时包含这两个结点中的最大关键码B+树的删除也仅在叶子结点进行当叶子结点中的最大关键码被删除时其在非终端结点中的值可以作为一个分界关键码存在若因删除而使结点中关键码的个数少于?...
  • #include <stdio.h> #define LENGTH(array) ( (sizeof(array)) / (sizeof(array[0])) ) int array1[]={0,1,2,3...//顺序查找 int SequenceSearch(int a[], int value, int n) { int i; for(i=0; i<n; i++)
    #include <stdio.h>
    
    #define LENGTH(array) ( (sizeof(array)) / (sizeof(array[0])) )
    
    int array1[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
    
    //顺序查找
    int SequenceSearch(int a[], int value, int n)
    {
        int i;
        for(i=0; i<n; i++)
            if(a[i]==value)
                return i;
        return -1;
    }
    
    //二分查找(折半查找),版本1
    int BinarySearch1(int a[], int value, int n)
    {
        int low, high, mid;
        low = 0;
        high = n-1;
        while(low<=high)
        {
            mid = (low+high)/2;
            if(a[mid]==value)
                return mid;
            if(a[mid]>value)
                high = mid-1;
            if(a[mid]<value)
                low = mid+1;
        }
        return -1;
    }
    
    //二分查找,递归版本
    int BinarySearch2(int a[], int value, int low, int high)
    {
        int mid = low+(high-low)/2;
        if(a[mid]==value)
            return mid;
        if(a[mid]>value)
            return BinarySearch2(a, value, low, mid-1);
        if(a[mid]<value)
            return BinarySearch2(a, value, mid+1, high);
    }
    
    int main(void)
    {
    	int len,search_num,location;
    	len = LENGTH(array1);
    	search_num = 16;
    	
    //	location = SequenceSearch(array1, search_num, len);
    //	location = BinarySearch1(array1, search_num, len);
    	location = BinarySearch2(array1, search_num, 0, len-1);
    	
    	printf("%d is array1[%d]\n", search_num, location);
    	return 0;
    }
    
    展开全文
  • 是一种简单的査找算法,其实现方法是从序列的起始元素开始,逐个将序列中的元素与所要查找的元素进行比较,如果序列中有元素与所要查找的元素相等,那么査找成功,如果査找到序列的最后一个元素都不存在一个元素与所...
  • C语言分块查找算法索引顺序查找算法 例如采用分块查找法在有序表 111218283956698996122135146156256298 中查找关键字为 96 的元素 査找特定关键字元素个数为 15要求用户输入有序表各元素程序输出査找成功与否若成功...
  • C语言二分法查找算法

    2020-11-25 22:06:31
    二分查找算法/折半查找算法:
  • C语言——查找算法

    2020-08-06 12:59:11
    C语言——查找算法的实现 1.线性查找 不要求数据表是已经排好序的 *从线性数据表中的第一个(或最后一个)记录开始查找 *依次将记录的关键字和查找的关键字进行比较 a.当记录的关键字与查找的关键字相等时,即查找...
  • C语言经典算法

    2018-08-16 17:57:35
    C语言经典算法(二分查找法 、冒泡排序法、快速查找法等等)
  • 顺序查找 <*******\n"); printf("\t***********> 2.二分查找(非递归) <*******\n"); printf("\t***********> 3.二分查找(递归) <*******\n"); printf("\t***********> 4,直接插入排序 <*******\n"); printf...
  • C语言二分查找算法折半查找算法 本实例采用二分查找法查找特定关键字的元素要求用户输入数组长度也就是有序表的数据长度并输入数组元素和査找的关键字程序输出查找成功与否以及成功时关键字在数组中的位置例如在有序...
  • 算法(Algorithm),是程序设计的灵魂,它是利用系统的方法描述...本系列文章旨在用C语言解释算法的作用,分析包括排序算法、查找算法、迭代算法、递推算法、 递归算法、枚举算法、贪心算法、回溯算法、矩阵算法等。
  • C语言 哈希查找算法

    2009-05-03 23:53:01
    C 言语 哈希查找算法 数据结构教才答案
  • 我自己写的一个C语言顺序查找算法程序,可以运行,是按照结构体定义并实现操作的
  • C语言查找算法

    千次阅读 2015-10-05 08:33:23
    今天给大家介绍三种基本的查找算法: 顺序查找、折半查找和索引查找。一、顺序查找基本思想:从查找表的一端开始,逐个将记录的关键字和给定的值进行比较,如果某个记录的关键字和给定值相等,则称查找成功;否则说明...
  • C语言_算法_查找

    2020-07-22 16:40:18
    1.在一个固定数组中查找这个数是否存在 (1)顺序查找 #include <stdio.h> int main() { int i,n,array[10]={1,2,3,4,5,6,7,8,9,10}; scanf("%d",&n); for(i=0;i<10;i++){ if(array[i]==n){ ...
  • 例如,采用分块查找法在有序表 11、12、18、28、39、56、69、89、96、122、135、146、156、256、298 中查找关键字为 96 的元素。 査找特定关键字元素个数为 15,要求用户输入有序表各元素,程序输出査找成功与否,...
  • 大学时用c语言写的多种查找与排序算法的源码,附带测试数据
  • C语言二分法查找算法详解

    千次阅读 2019-11-03 14:34:25
    前言 假如给你一组有序的数字,让你从中找出某个...二分算法/折半查找算法 我们先说一下什么是二分算法,假如给出一个这样的一组有序数字1,2,3,4,5,6,7,8,9,10。让你从中找出数字7。我们先找出这组数字的...
  • c语言设计查找算法

    2010-07-21 01:46:06
    二叉排序树:更新二叉排序树、查找结点、插入结点、删除结点、中序输出排序树 、返回 查找算法:顺序查找、二分查找、二插排序树、返回
  • c语言常用算法整理

    万次阅读 多人点赞 2019-02-26 10:10:57
    这里整理c语言常用算法,主要有: 交换算法 ...二分查找算法 查找重复算法 代码如下: //交换 void swap(int *a, int *b){ int tmp=*a; *a=*b; *b=tmp; } //查找最小 int min(int x, int y) { r...
  • C语言Cruskal算法查找最小生成树Cruskal算法查找最小生成树完整源码 Cruskal算法查找最小生成树完整源码 #include <stdio.h> #include <stdlib.h> #include <string.h> // a structure to ...
  • c语言 快速查找算法

    2009-12-27 10:49:38
    一躺快速排序的算法是: 1)、设置两个变量I、J,排序开始的时候I:=1,J:=N; 2)以第一个数组元素作为关键数据,赋值给X,即X:=A[1]; 3)、从J开始向前搜索,即由后开始向前搜索(J:=J-1),找到第一个...
  • 折半查找 C语言 算法

    2010-06-27 11:50:42
    c语言 折半 查找 算法 数据结构 绝对可用 欢迎下载 绝对可用 欢迎下载

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,141
精华内容 856
关键字:

c语言查找算法

c语言 订阅