c简单查找

顺序查找

 1 #include "stdio.h"
 2 #define N 5
 3 int main(int argc,char *argv[])
 4 {
 5     int i, k, a[N];
 6     for (i = 0; i < N; i++)
 7     {
 8         scanf("%d", &a[i]);   //循环输入
 9     }
10         
11     printf("\n请输入要查找的数:");
12     scanf("%d", &k);
13 
14     for (i = 0; i < N; i++)
15     { 
16         if (a[i] == k)   //循环查找
17         {
18             printf("%d在第%d位", k, i + 1); break;
19         }
20     }
21     return 0;
22 }

 

二分查找

 1 #include"stdio.h"
 2 int main()
 3 {
 4     int a[5],min,max,p,t,i,j,mid,k;
 5     for(i=0;i<5;i++)
 6     scanf("%d",&a[i]);
 7     for(i=0;i<4;i++)
 8      {
 9          min=a[i];
10          p=i; 
11          for(j=i+1;j<5;j++)
12          if(min>a[j])
13          min=a[j],p=j;
14          a[p]=a[i];
15          a[i]=min;
16      }
17      for(i=0;i<5;i++)
18      printf("%d ",a[i]);
19      printf("\n");
20      min=0;
21      max=4;
22      printf("请输入要查找的数:");
23      scanf("%d",&k);
24      while(k>=a[min]&&k<=a[max])
25      {
26          mid=(max+min)/2;
27          if(k==a[mid])
28          {
29              printf("%d在第%d位",k,mid+1);
30              break;
31          }
32          else if(k<a[mid])
33          max=mid-1;
34          else
35           min=mid+1;
36      }
37      return 0;  
38 }

 冒泡查找

 1 #include"stdio.h"
 2 int main()
 3 {
 4     int a[5], i, j, t, k;
 5     for (i = 0; i < 5; i++)
 6         scanf("%d", &a[i]);
 7     for (i = 0; i < 4; i++)
 8         for (j = 0; j < 4 - i; j++)
 9             if (a[j] > a[j + 1])
10             {
11                 t = a[j];
12                 a[j] = a[j + 1];
13                 a[j + 1] = t;
14             }
15     for (i = 0; i < 5; i++)
16     {
17         printf("%d ", a[i]);
18     }
19         
20     printf("\n请输入要查找的数:");
21     scanf("%d", &k);
22     for (i = 0; i < 5; i++)
23         if (k == a[i])
24             printf("%d在第%d位", k, i + 1);
25     return 0;

 

posted @ 2022-03-22 23:37  菜鸡拾光  阅读(96)  评论(0)    收藏  举报